UploadController.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  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->file('file');
  12. //获取上传图片的临时地址
  13. $tmppath = $file->getRealPath();
  14. //生成文件名
  15. $fileName = rand(1000,9999). time() .date('ymd') . '.' . $file->getClientOriginalExtension();
  16. //拼接上传的文件夹路径(按照日期格式1810/17/xxxx.jpg)
  17. $pathName = 'chengluApp/'.date('Y-m/d').'/'.$fileName;
  18. //上传图片到阿里云OSS
  19. Storage::disk('oss')->put($pathName, $tmppath);
  20. //获取上传图片的Url链接
  21. $Url = Storage::url($pathName);
  22. }catch (\Exception $exception){
  23. return $this->response->errorForbidden($exception->getMessage());
  24. }
  25. // 返回状态给前端,Laravel框架会将数组转成JSON格式
  26. return response()->json(['src' => $Url]);
  27. }
  28. }