DcatAdmin 七牛云存储之前端文件直传(继续优化)

接上一篇,我们已经实现了浏览器将文件直传七牛云,但是在控制器中引入相关代码,冗长且繁琐。

于是,我今天抽空把前面那段代码优化了一下,原理是利用 Laravel 框架的 Macro 功能,为 Dcat\Admin\Form\Field\File 类添加一个名为 qiniu 方法。

打开 app/Admin/bootstrap.php 文件,添加如下代码...

分类至 PHP
0条评论

DcatAdmin 七牛云存储之前端文件直传

接上一篇,已知 DcatAdmin 配置了七牛云存储后,可以不改动原来的表单代码,就能将资源上传到七牛云存储空间,如:

$form->image('img_url')
    ->uniqueName()
    ->autoUpload()
    ->saveFullUrl()
    ->autoSave(false)
    ->removable(false);

这样使用,图片上传的时候,是先经过我们的服务器,然后再由服务器上传到七牛云,相当于做了一次中转。

图片文件一般都比较小,前端页面上传操作感觉不出有什么变化。但如果是一些大文件,比如视频文件,几十MB甚至几百MB,前端操作上传的时候,就会明显看到进度条到100%后仍要等待一段时间,最后才显示完成,体验非常不好!

分类至 PHP
0条评论

DcatAdmin 让七牛云存储默认返回 https 的资源链接

DcatAdmin 图片/文件上传说明:https://learnku.com/docs/dcat-admin/2.x/picture-file-upload/8106#5e550f

我根据文档中的说明配置了七牛云,但在使用了 saveFullUrl 方法后,发现返回的资源链接是 http 而非 https。

阅读了扩展包源码,目前在 app/Providers/AppServiceProvider.php 文件的 boot 方法中添加两行代码得以解决:

    public function boot()
    {
        // 七牛云设置默认url为https
        $domain = config('filesystems.disks.qiniu.domains.https');
        Storage::disk('qiniu')->getAdapter()->setDomainPrefix('https://'.$domain, 'default');
    }

 

分类至 PHP
0条评论

laravel 数据迁移文件给表添加注释

当还在用 laravel 8.x 的时候,在 migration 数据迁移文件中,给 mysql 表添加注释,需要增加一条 DB::statment( ) 语句:

DB::statement("alter table `test` comment '表注释'");

当你升级到 laravel 9.14.0 版本后,就不需要这样做了,可使用 $table->comment( ) 语句,如...

分类至 MySQL
0条评论

使用 Apache ShardingSphere 做数据分片(分表分库)

什么是 Apache ShardingSphere

Apache ShardingSphere 是一款分布式的数据库生态系统,可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。

根据编程语言场景不同,其又分为2个产品:

  • ShardingSphere-JDBC:定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。
  • ShardingSphere-Proxy:定位为透明化的数据库代理端,通过实现数据库二进制协议,对异构语言提供支持。

官网:https://shardingsphere.apache.org/index_zh.html


Java 以为的语言需要用 ShardingSphere-Proxy,本篇将阐述如何在 docker 环境下做 mysql 数据分片。

分类至 杂项
0条评论

Laravel9 & Inertia & Vue3 构建单页 SPA CURD 页面演示案例

 Laravel9 已经使用 Vite 前端工具来构建应用,习惯了原有的方式时,再来使用 Vite 新工具,似乎有点不太会用了,一切都好像变了,但一切都好像又没变。一股熟悉的陌生感迎面而来。就以本篇文章作为拥抱新变化的开始吧!

目标:本篇文章将使用 Laravel9 & Inertia Js & Vue3 来构建一个 CURD 简单的 SPA 应用。

分类至 PHP
0条评论

php8 安装 event 扩展后报错:undefined symbol: socket_ce

php8 安装 event 扩展后执行 php -m 报错:

Warning: PHP Startup: Unable to load dynamic library 'event' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20210902/event (/usr/local/lib/php/extensions/no-debug
-non-zts-20210902/event: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20210902/event.so (/usr/local/lib/php/
extensions/no-debug-non-zts-20210902/event.so: undefined symbol: socket_ce)) in Unknown on line 0

请更改 event.so 和 socket.so 的加载顺序,既在 php.ini 中将 extension=socket.so 写在 extension=event.so 前面,让socket扩展先加载。

如果是用 docker 版的 php,将文件 /usr/local/etc/php/conf.d/ 目录下的文件 docker-php-ext-event.ini 重命名为 docker-php-ext-z-event.ini,让它排在 docker-php-ext-sockets.ini 后面即可。

分类至 PHP
0条评论

debian 安装 nodejs 14.x 版本

指令如下:

curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt install -y nodejs

第2个指令很慢,如果你有代理,给 apt 设置代理加速下载:

apt -o Acquire::http::proxy="http://192.168.1.6:8888/" install -y nodejs 

 

分类至 Linux
0条评论