Upload.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\system\controller;
  4. // +----------------------------------------------------------------------
  5. // | [ WE CAN DO IT MORE SIMPLE ]
  6. // +----------------------------------------------------------------------
  7. // | Copyright (c) 2018-2020 rights reserved.
  8. // +----------------------------------------------------------------------
  9. // |
  10. // +----------------------------------------------------------------------
  11. // | Date: 2020-08-31 15:05
  12. // +----------------------------------------------------------------------
  13. use app\Request;
  14. use app\system\controller\AuthController;
  15. use library\lib\upMp4;
  16. use library\utils\Qiniu;
  17. use app\model\api\Sys as SysModel;
  18. use think\Image;
  19. class Upload extends AuthController{
  20. public function index(Request $request){
  21. $uploadConfig = config('filesystem');
  22. $sysData = (new SysModel())->where("id",1)->find();
  23. $file = $request->file('file');
  24. $code = $request->post("code","image");
  25. if(empty($file)) {
  26. return app('json')->fail("未上传文件");
  27. }
  28. $size = $file->getSize();
  29. if(!empty($size) && $size>$uploadConfig["image"]["size"]*1024*1024){
  30. return app('json')->fail("图片不能超过{$uploadConfig["image"]["size"]}M");
  31. }
  32. if(!in_array($code, $uploadConfig['image']['path'])){
  33. return app('json')->fail("上传路径错误");
  34. }
  35. $ext = $file->extension();
  36. if(!in_array($ext, $uploadConfig['image']['ext'])){
  37. return app('json')->fail("图片类型错误");
  38. }
  39. $upPath = \think\facade\Filesystem::disk('resource')->putFile( $code, $file);
  40. if(!$upPath){
  41. return app('json')->fail("图片上传失败01");
  42. }
  43. $savePath = $sysData['system_url'].'/resource/' . $upPath;
  44. $imgUrl = str_replace("\\", "/", $savePath);
  45. return app('json')->success(['img'=>$imgUrl]);
  46. }
  47. /**
  48. * 上传文件
  49. * @param Request $request
  50. */
  51. public function uploadFile(Request $request){
  52. $fileType = $request->post('type','');
  53. $file =$request->file('file');
  54. if(empty($file)) {
  55. return app('json')->fail("未上传文件");
  56. }
  57. //上传文件夹选择
  58. if(!in_array($fileType,["animated"])){
  59. return app('json')->fail("请选择上传文件夹");
  60. }
  61. $rootTmp = config('filesystem.disks.local.root') .'/' . \think\facade\Filesystem::putFile( 'tmp', $file);
  62. $qiniu = new Qiniu;
  63. $file_url = $qiniu->pathFileUpload($fileType, $rootTmp, $rootTmp);
  64. if(empty($file_url['url'])){
  65. return app('json')->fail( $qiniu->getError());
  66. }
  67. return app('json')->success(['url'=>$file_url['url']]);
  68. }
  69. /**
  70. * 上传视频
  71. * @param Request $request
  72. */
  73. public function mp4(Request $request) {
  74. $file = $request->file('Filedata');
  75. if(empty($file)) {
  76. return app('json')->fail('上传失败');
  77. }
  78. $name = $file->getOriginalName();
  79. $expAr= explode('.',$name);
  80. $exp = end($expAr);
  81. $dEXp = ['mp4'];
  82. if(!in_array(strtolower($exp),$dEXp)) {
  83. return app('json')->fail('上传格式不支持.'.$exp);
  84. }
  85. $mp4up = new upMp4([
  86. 'file' => 'Filedata',
  87. 'checkTmpRoot' => config('filesystem.disks.local.root') . "/mp4/",
  88. 'mp4Root' => config('filesystem.disks.local.root') . "/mp4/"
  89. ]);
  90. $mp4up->setParam($request->param());
  91. $b = $mp4up->render('jpg');
  92. if ($b) {
  93. $return = $mp4up->getResult();
  94. return app('json')->success($return);
  95. }
  96. return app('json')->fail( $mp4up->getError());
  97. }
  98. }