UploadController.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Storage;
  5. class UploadController extends Controller
  6. {
  7. public function upload(Request $request)
  8. {
  9. try {
  10. //获取上传的文件
  11. $file = $request;
  12. return response()->json(['data' => $file]);
  13. //获取上传图片的临时地址
  14. $tmppath = $file->getRealPath();
  15. //生成文件名
  16. $fileName = rand(1000,9999). time() .date('ymd') . '.' . $file->getClientOriginalExtension();
  17. //拼接上传的文件夹路径(按照日期格式1810/17/xxxx.jpg)
  18. $pathName = 'chengluApp/'.date('Y-m/d').'/'.$fileName;
  19. //上传图片到阿里云OSS
  20. Storage::putRemoteFile($pathName, $tmppath);
  21. //获取上传图片的Url链接
  22. $Url = Storage::url($pathName);
  23. }catch (\Exception $exception){
  24. return $this->response->errorForbidden($exception->getMessage());
  25. }
  26. // 返回状态给前端,Laravel框架会将数组转成JSON格式
  27. return response()->json(['src' => $Url]);
  28. }
  29. }