Upload.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. // /**
  21. // * 七牛上传
  22. // * @param Request $request
  23. // */
  24. // public function index(Request $request){
  25. // $file = $request->file('file');
  26. // if (empty($file)) {
  27. // return app('json')->fail("未上传文件");
  28. // }
  29. // $file = $request->file('file');
  30. // if (empty($file)) {
  31. // return app('json')->fail("未上传文件");
  32. // }
  33. // $code = $request->post("code","");
  34. // $codes = $request->post("codes","");
  35. // $rootTmp = config('filesystem.disks.local.root') . '/' . \think\facade\Filesystem::putFile('tmp', $file);
  36. // $image_size = @getimagesize($rootTmp);
  37. // if ($image_size[0] > 1000) {
  38. // $imgS = Image::open($rootTmp);
  39. // $imgS->thumb(1000, $image_size[1]);
  40. // $imgS->save($rootTmp);
  41. // } else {
  42. // if ($image_size[1] > 1000) {
  43. // $imgS = Image::open($rootTmp);
  44. // $imgS->thumb($image_size[0], 1000);
  45. // $imgS->save($rootTmp);
  46. // }
  47. // }
  48. // $qiniu = new Qiniu;
  49. // $img_url = $qiniu->updateFile('sysimg', $rootTmp, $rootTmp);
  50. // if (empty($img_url['url'])) {
  51. // return app('json')->fail($qiniu->getError());
  52. // }
  53. // @unlink($rootTmp);
  54. // return app('json')->success(['img' => $img_url['url']]);
  55. // }
  56. /**
  57. * 七牛上传
  58. * @param Request $request
  59. */
  60. public function index(Request $request)
  61. {
  62. $file = $request->file('file');
  63. if (empty($file)) {
  64. return app('json')->fail("未上传文件");
  65. }
  66. $code = $request->post("code", "");
  67. $codes = $request->post("codes", "");
  68. // 限制上传文件的后缀名为 mp3 和 mp4
  69. $ext = ['mp3', 'mp4'];
  70. $validate = validate(['file' => ['fileSize:104857600', 'fileExt:' . implode(',', $ext)]]);
  71. if (!$validate->check(['file' => $file])) {
  72. return app('json')->fail($validate->getError());
  73. }
  74. $rootTmp = config('filesystem.disks.local.root') . '/' . \think\facade\Filesystem::putFile('tmp', $file);
  75. $qiniu = new Qiniu;
  76. $file_url = $qiniu->updateFile('sysfile', $rootTmp, $rootTmp);
  77. if (empty($file_url['url'])) {
  78. return app('json')->fail($qiniu->getError());
  79. }
  80. @unlink($rootTmp);
  81. return app('json')->success(['file' => $file_url['url']]);
  82. }
  83. /**
  84. * 本地上传
  85. * @param Request $request
  86. * @return type
  87. */
  88. public function index2(Request $request){
  89. $uploadConfig = config('filesystem');
  90. $sysData = (new SysModel())->where("id",1)->find();
  91. $file = $request->file('file');
  92. $code = $request->post("code","image");
  93. if(empty($file)) {
  94. return app('json')->fail("未上传文件");
  95. }
  96. $size = $file->getSize();
  97. if(!empty($size) && $size>$uploadConfig["image"]["size"]*1024*1024){
  98. return app('json')->fail("图片不能超过{$uploadConfig["image"]["size"]}M");
  99. }
  100. if(!in_array($code, $uploadConfig['image']['path'])){
  101. return app('json')->fail("上传路径错误");
  102. }
  103. $ext = $file->extension();
  104. if(!in_array($ext, $uploadConfig['image']['ext'])){
  105. return app('json')->fail("图片类型错误");
  106. }
  107. $upPath = \think\facade\Filesystem::disk('resource')->putFile( $code, $file);
  108. if(!$upPath){
  109. return app('json')->fail("图片上传失败01");
  110. }
  111. $savePath = $sysData['system_url'].'/resource/' . $upPath;
  112. $imgUrl = str_replace("\\", "/", $savePath);
  113. return app('json')->success(['img'=>$imgUrl]);
  114. }
  115. /**
  116. * 证书文件上传
  117. * @param Request $request
  118. */
  119. public function uploadCertFile(Request $request){
  120. $uploadConfig = config('filesystem');
  121. $file = $request->file('file');
  122. $type = $request->post("type","");
  123. if(empty($file)) {
  124. return app('json')->fail("未上传文件");
  125. }
  126. $upPath = \think\facade\Filesystem::disk('resource')->putFileAs( "cert", $file,"weixin". DIRECTORY_SEPARATOR.date('Ymd').DIRECTORY_SEPARATOR.$file->getOriginalName());
  127. if(!$upPath){
  128. return app('json')->fail("上传失败01");
  129. }
  130. $savePath = '/resource/' . $upPath;
  131. return app('json')->success(['cert'=>$savePath,"type"=>$type,"name"=>$file->getOriginalName()]);
  132. }
  133. /**
  134. * 上传文件
  135. * @param Request $request
  136. */
  137. public function uploadFile(Request $request){
  138. $fileType = $request->post('type','');
  139. $file =$request->file('file');
  140. if(empty($file)) {
  141. return app('json')->fail("未上传文件");
  142. }
  143. //上传文件夹选择
  144. if(!in_array($fileType,["animated"])){
  145. return app('json')->fail("请选择上传文件夹");
  146. }
  147. $rootTmp = config('filesystem.disks.local.root') .'/' . \think\facade\Filesystem::putFile( 'tmp', $file);
  148. $qiniu = new Qiniu;
  149. $file_url = $qiniu->pathFileUpload($fileType, $rootTmp, $rootTmp);
  150. if(empty($file_url['url'])){
  151. return app('json')->fail( $qiniu->getError());
  152. }
  153. return app('json')->success(['url'=>$file_url['url']]);
  154. }
  155. /**
  156. * 上传视频
  157. * @param Request $request
  158. */
  159. public function mp4(Request $request) {
  160. $file = $request->file('Filedata');
  161. if(empty($file)) {
  162. return app('json')->fail('上传失败');
  163. }
  164. $name = $file->getOriginalName();
  165. $expAr= explode('.',$name);
  166. $exp = end($expAr);
  167. $dEXp = ['mp4'];
  168. if(!in_array(strtolower($exp),$dEXp)) {
  169. return app('json')->fail('上传格式不支持.'.$exp);
  170. }
  171. $mp4up = new upMp4([
  172. 'file' => 'Filedata',
  173. 'checkTmpRoot' => config('filesystem.disks.local.root') . "/mp4/",
  174. 'mp4Root' => config('filesystem.disks.local.root') . "/mp4/"
  175. ]);
  176. $mp4up->setParam($request->param());
  177. $b = $mp4up->render('jpg');
  178. if ($b) {
  179. $return = $mp4up->getResult();
  180. return app('json')->success($return);
  181. }
  182. return app('json')->fail( $mp4up->getError());
  183. }
  184. }