FileUploadController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Service\FileUploadService;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Storage;
  6. use PhpOffice\PhpSpreadsheet\Calculation\Statistical\Distributions\F;
  7. //文件上传
  8. class FileUploadController extends BaseController
  9. {
  10. public function uploadFile(Request $request){
  11. $service = new FileUploadService();
  12. list($status,$data) = $service->uploadFile($request->file('file'));
  13. if($status){
  14. return $this->json_return(200,'上传成功',['url' => $data]);
  15. }else{
  16. return $this->json_return(201,$data);
  17. }
  18. }
  19. //获取文件的位置预览(临时文件)
  20. public function getFile($file_name){
  21. $file_name = str_replace(FileUploadService::string2,'',$file_name);
  22. $timestamp = substr($file_name, 0, 8); // 截取前八位数字
  23. $date = \DateTime::createFromFormat('Ymd', $timestamp);
  24. $date = $date->format('Y-m-d');
  25. $dir = FileUploadService::tmp_dir . '/' . $date. '/' . $file_name;
  26. $path = storage_path() . "/app/public/" . $dir;
  27. // 返回一个错误响应或默认图片
  28. if (! Storage::disk('public')->exists($dir)) return $this->json_return(201,'File not exists');
  29. return response()->file($path);
  30. }
  31. //获取文件的位置
  32. public function getFileLocal($file_name){
  33. $path = storage_path() . "/app/public/upload_files/".$file_name;
  34. if(file_exists($path)) return response()->file($path);
  35. return "";
  36. }
  37. }