PublicController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. /*
  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. */
  50. //图片统一存放在 public目录下面的 uupload/年月/日/文件名
  51. $newFile = date('Y-m-d')."_".time()."_".uniqid().".".$file->getClientOriginalExtension();
  52. $path_my = DIRECTORY_SEPARATOR.'upload'.DIRECTORY_SEPARATOR.date('Ym').DIRECTORY_SEPARATOR.date('d').DIRECTORY_SEPARATOR ;
  53. $Path_base = public_path().$path_my ;
  54. createDir($Path_base);
  55. $res = move_uploaded_file($file->getRealPath(),$Path_base.$newFile);
  56. $path_url = str_replace("\\",'/',$path_my.$newFile) ;
  57. if($res){
  58. $data = [
  59. 'code' => 0,
  60. 'msg' => '上传成功',
  61. 'data' => $newFile,
  62. 'url' => $path_url ,
  63. ];
  64. }else{
  65. $data['data'] = $file->getErrorMessage();
  66. }
  67. return response()->json($data);
  68. }
  69. public function Directory( $dir ){
  70. return is_dir ( $dir ) or Directory(dirname( $dir )) and mkdir ( $dir , 0777);
  71. }
  72. }