FileUploadService.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Service;
  3. use Illuminate\Support\Facades\Storage;
  4. class FileUploadService extends Service
  5. {
  6. //文件类型
  7. const FILE_TYPE = [
  8. 'txt',
  9. 'jpg',
  10. 'png',
  11. 'gif',
  12. 'jpeg',
  13. 'zip',
  14. 'rar',
  15. 'xlsx',
  16. 'xls'
  17. ];
  18. public function uploadFile($file){
  19. if(empty($file)) return [false, '请上传文件'];
  20. // 获取文件相关信息
  21. $ext = $file->getClientOriginalExtension(); // 扩展名
  22. $realPath = $file->getRealPath(); //临时文件的绝对路径
  23. $ext = strtolower($ext);
  24. if (! in_array($ext, self::FILE_TYPE)){
  25. $str = '文件格式为:';
  26. foreach (self::FILE_TYPE as $value){
  27. $str.= $value . ' ' ;
  28. }
  29. return [false,$str];
  30. }
  31. // 上传文件
  32. $file_name = date("Ymd").time().rand(1000,9999);
  33. $filename = $file_name.'.' . $ext;
  34. // 使用我们新建的uploads本地存储空间(目录)
  35. Storage::disk('public')->put('upload_files/'.$filename, file_get_contents($realPath));
  36. return [true,'/api/uploadFiles/'.$filename];
  37. }
  38. }