一:安装扩展

  参考:https://github.com/jacobcyl/Aliyun-oss-storage

  1. composer require jacobcyl/ali-oss-storage:^2.1

二:添加服务提供者

  在config/app.php 中的 providers 下面 添加:

  1. Jacobcyl\AliOSS\AliOssServiceProvider::class,
三:配置filesystems.php

  在config/filesystems.php 中的 disks 下面添加:

  1. \'oss\' => [
  2. \'driver\' => \'oss\',
  3. \'access_id\' => \'<Your Aliyun OSS AccessKeyId>\',
  4. \'access_key\' => \'<Your Aliyun OSS AccessKeySecret>\',
  5. \'bucket\' => \'<OSS bucket name>\',
  6. \'endpoint\' => \'<the endpoint of OSS, E.g: oss-cn-hangzhou.aliyuncs.com | custom domain, E.g:img.abc.com>\', // OSS 外网节点或自定义外部域名
  7. //\'endpoint_internal\' => \'<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com>\', // v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中)
  8. \'cdnDomain\' => \'<CDN domain, cdn域名>\', // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
  9. \'ssl\' => <true|false> // true to use \'https://\' and false to use \'http://\'. default is false,
  10. \'isCName\' => <true|false> // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
  11. \'debug\' => <true|false>
  12. ],

  更改config/filesystems.php 中的默认文件驱动

  1. \'default\' => env(\'FILESYSTEM_DRIVER\', \'oss\'),// env(\'FILESYSTEM_DRIVER\', \'local\'),

四:配置laravel-admin的 admin.php 配置

  修改config/admin.php 的upload 节点:

  1. \'disk\' => \'oss\', // \'disk\' => \'admin\',

五:基本配置完成,测试:

  可能存在原有数据图片访问不了的情况导致报错。请先处理。

六:编写wang-edit图片上传类

  1. namespace App\Admin\Controllers;
  2. use App\Handlers\ImageUploadHandler;
  3. use Carbon\Carbon;
  4. use Encore\Admin\Controllers\AdminController;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Storage;
  7. class UploadController extends AdminController
  8. {
  9. /**
  10. * 富文本编辑器本地上传图片
  11. * @param Request $request
  12. * @param ImageUploadHandler $uploader
  13. * @return array
  14. */
  15. public function upImage(Request $request, ImageUploadHandler $uploader)
  16. {
  17. // 初始化返回数据,默认是失败的
  18. $data = [
  19. \'errno\' => 1,
  20. ];
  21. // 判断是否有上传文件,并赋值给 $file
  22. if ($file = $request->upload_file) {
  23. // 保存图片到本地
  24. $result = $uploader->save($request->upload_file, \'we_detail\', \'article\');
  25. // 图片保存成功的话
  26. if ($result) {
  27. $data[\'data\'][] = $result[\'path\'];
  28. $data[\'errno\'] = 0;
  29. }
  30. }
  31. return $data;
  32. }
  33. /**
  34. * 富文本编辑器oss图片上传
  35. */
  36. public function upOssImage(Request $request)
  37. {
  38. // 初始化返回数据,默认是失败的
  39. $data = [
  40. \'errno\' => 1,
  41. ];
  42. // 判断是否有上传文件,并赋值给 $file
  43. if ($file = $request->upload_file) {
  44. // 保存图片到本地
  45. // $path = \'we_detail\'.$request->upload_file;
  46. $directory = Carbon::now()->format(\'Ymd\');
  47. $result = Storage::putFile(\'article/we_detail/\'.$directory, $request->upload_file);
  48. // 图片保存成功的话
  49. if ($result) {
  50. $data[\'data\'][] = \'https://test.oss-cn-shanghai.aliyuncs.com/\'.$result;
  51. $data[\'errno\'] = 0;
  52. }
  53. }
  54. return $data;
  55. }
  56. }

  重新配置admin.php 的wang-edit扩展

  1. extensions\' => [
  2. \'wang-editor\' => [
  3. // 如果要关掉这个扩展,设置为false
  4. \'enable\' => true,
  5. // 编辑器的配置
  6. \'config\' => [
  7. // `/upload`接口用来上传文件,上传逻辑要自己实现
  8. \'uploadImgServer\' => \'/admin/up-oss-image\',
  9. \'uploadFileName\' => \'upload_file\'
  10. ]
  11. ]
  12. ]

 

版权声明:本文为wish-yang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wish-yang/p/14921798.html