FileController.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\File\DownloadRequest;
  5. use App\Http\Requests\API\File\UploadRequest;
  6. use Carbon\Carbon;
  7. use Illuminate\Support\Facades\Storage;
  8. use Illuminate\Support\Str;
  9. class FileController extends Controller
  10. {
  11. public function upload(UploadRequest $request)
  12. {
  13. $file = $request->file('file');
  14. $ext = $request->file('file')->getClientOriginalExtension() ? '.'.$request->file('file')->getClientOriginalExtension() : null;
  15. $fileName = $request->fileName ? $request->fileName : Carbon::now()->timestamp. '_' . Str::random(10).$ext;
  16. $path = 'uploads/' .date('Ymd/').$fileName;
  17. Storage::put($path, file_get_contents($file->getRealPath()));
  18. return [
  19. 'fileName' => $fileName,
  20. 'url' => $path,
  21. 'fullUrl' => Storage::url($path),
  22. 'ext' => $ext,
  23. ];
  24. }
  25. public function download(DownloadRequest $request)
  26. {
  27. $url=$request->url;
  28. return Storage::download($url);
  29. }
  30. }