UploadController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Log;
  5. use Illuminate\Support\Facades\Storage;
  6. class UploadController extends Controller
  7. {
  8. public function uploadImage(Request $request)
  9. {
  10. if ($request->hasFile('image') && $request->file('image')->isValid()) {
  11. $path = $request->get('path') ? $request->get('path') . '/' : date('Ym') . '/';
  12. //获取文件的原文件名 包括扩展名
  13. // $yuanname= $request->file('image')->getClientOriginalName();
  14. // //获取文件的扩展名
  15. $kuoname = $request->file('image')->getClientOriginalExtension();
  16. // //获取文件的类型
  17. // $type=$request->file('image')->getClientMimeType();
  18. // //获取文件的绝对路径,但是获取到的在本地不能打开
  19. $filePath = $request->file('image')->getRealPath();
  20. //要保存的文件名 时间+扩展名
  21. $filename = time() . '_' . uniqid() . '.' . $kuoname;
  22. $imageUrl = Storage::put($path . $filename, file_get_contents($filePath));
  23. if ($imageUrl) {
  24. return [
  25. 'data' => ['url' => $path . $filename]
  26. ];
  27. } else {
  28. return $this->response->error('图片上传失败,请重试', 500);
  29. }
  30. } else {
  31. return $this->response->error('图片上传失败,请重试', 500);
  32. }
  33. }
  34. public function uploadImages(Request $request)
  35. {
  36. $files = $request->file('image');
  37. $fileCount = count($files);
  38. $urls = [];
  39. for ($i = 0; $i < $fileCount; $i++) {
  40. $kuoname = $files[$i]->getClientOriginalExtension();
  41. $filePath = $files[$i]->getRealPath();
  42. //要保存的文件名 时间+扩展名
  43. $filename = time() . '_' . uniqid() . '.' . $kuoname;
  44. $imageUrl = Storage::put($filename, file_get_contents($filePath));
  45. if ($imageUrl) {
  46. array_push($urls, $filename);
  47. } else {
  48. Log::debug('文件上传失败。' . $filename);
  49. }
  50. }
  51. if ($urls) {
  52. return [
  53. 'data' => $urls
  54. ];
  55. } else {
  56. return $this->response->error('图片上传失败,请重试', 500);
  57. }
  58. }
  59. }