PublicController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Traits\Msg;
  4. use Illuminate\Http\Request;
  5. use zgldh\QiniuStorage\QiniuStorage;
  6. class PublicController extends Controller
  7. {
  8. use Msg;
  9. //图片上传处理
  10. public function uploadImg(Request $request)
  11. {
  12. //上传文件最大大小,单位M
  13. $maxSize = 10;
  14. //支持的上传图片类型
  15. $allowed_extensions = ["png", "jpg", "gif"];
  16. //返回信息json
  17. $data = ['code'=>200, 'msg'=>'上传失败', 'data'=>''];
  18. $file = $request->file('file');
  19. //检查文件是否上传完成
  20. if ($file->isValid()){
  21. //检测图片类型
  22. $ext = $file->getClientOriginalExtension();
  23. if (!in_array(strtolower($ext),$allowed_extensions)){
  24. $data['msg'] = "请上传".implode(",",$allowed_extensions)."格式的图片";
  25. return response()->json($data);
  26. }
  27. //检测图片大小
  28. if ($file->getClientSize() > $maxSize*1024*1024){
  29. $data['msg'] = "图片大小限制".$maxSize."M";
  30. return response()->json($data);
  31. }
  32. }else{
  33. $data['msg'] = $file->getErrorMessage();
  34. return response()->json($data);
  35. }
  36. $newFile = date('Y-m-d')."_".time()."_".uniqid().".".$file->getClientOriginalExtension();
  37. $disk = QiniuStorage::disk('qiniu');
  38. $res = $disk->put($newFile,file_get_contents($file->getRealPath()));
  39. if($res){
  40. $data = [
  41. 'code' => 0,
  42. 'msg' => '上传成功',
  43. 'data' => $newFile,
  44. 'url' => $disk->downloadUrl($newFile)
  45. ];
  46. }else{
  47. $data['data'] = $file->getErrorMessage();
  48. }
  49. return response()->json($data);
  50. }
  51. }