链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.1 KiB

  1. <?php
  2. namespace App\Admin\Common;
  3. use Dcat\Admin\Traits\HasUploadedFile;
  4. class CustomFileController
  5. {
  6. /**
  7. * 自定义上传
  8. */
  9. use HasUploadedFile;
  10. public function handle()
  11. {
  12. $disk = $this->disk('oss');
  13. // 判断是否是删除文件请求
  14. if ($this->isDeleteRequest()) {
  15. // 删除文件并响应
  16. return $this->deleteFileAndResponse($disk);
  17. }
  18. // 获取上传的文件
  19. $file = $this->file();
  20. // 获取上传的字段名称
  21. // $column = $this->uploader()->upload_column;
  22. // 图片拓展名
  23. // $fileOriginalExtension = '.png';
  24. $fileName = md5(time().rand(0000,9999));
  25. $dir = 'mp_images';
  26. $newName = date('Y-m-d-').$fileName.'.'.$file->getClientOriginalExtension();
  27. $result = $disk->putFileAs($dir, $file, $newName);
  28. $path = "{$dir}/$newName";
  29. return $result
  30. ? $this->responseUploaded($path, $disk->url($path))
  31. : $this->responseErrorMessage('文件上传失败');
  32. }
  33. /**
  34. * 复制文件
  35. * @param $imageDir 存储文件夹
  36. * @param $filePath 文件相对路径
  37. */
  38. public function autoCopyFile($imageDir, $file)
  39. {
  40. $disk = $this->disk('oss');
  41. $result = false;
  42. if($disk->exists($file)){
  43. // 图片拓展名
  44. $fileOriginalExtension = pathinfo($file)['extension'];
  45. $fileName = md5(time().rand(0000,9999));
  46. $dir = $imageDir;
  47. $newName = 'copy_'.$fileName.'.'.$fileOriginalExtension;
  48. $path = "{$dir}/$newName";
  49. $result = $disk->copy($file, $path);
  50. };
  51. return $result
  52. ? ['status' => true , 'msg' => '文件复制成功', 'path' => $path, 'url' => $disk->url($path)]
  53. : ['status' => false , 'msg' => '文件复制失败'];
  54. }
  55. /**
  56. * 上传文件
  57. * @param $imageDir 存储文件夹
  58. * @param $filePath 文件相对路径
  59. */
  60. public function autoUploadFile($imageDir, $file)
  61. {
  62. $disk = $this->disk('oss');
  63. // 图片拓展名
  64. $fileOriginalExtension = pathinfo($file)['extension'];
  65. $fileName = md5(time().rand(0000,9999));
  66. $dir = $imageDir;
  67. $newName = 'upload_'.$fileName.'.'.$fileOriginalExtension;
  68. $path = "{$dir}/$newName";
  69. $result = $disk->putFileAs($dir, $file, $newName);
  70. return $result
  71. ? ['status' => true , 'msg' => '文件上传成功', 'path' => $path, 'url' => $disk->url($path)]
  72. : ['status' => false , 'msg' => '文件上传失败'];
  73. }
  74. /**
  75. * 删除文件
  76. * @param $filePath 文件路径
  77. */
  78. public function autoDeleteFile($file)
  79. {
  80. $disk = $this->disk('oss');
  81. $result = $disk->delete($file);
  82. return $result
  83. ? ['status' => true , 'msg' => '文件删除成功', 'path' => $file,'result' =>$result]
  84. : ['status' => false , 'msg' => '文件删除失败','result' =>$result];
  85. }
  86. }