UploadableTrait.php 936 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Shop\Tools;
  3. use Illuminate\Http\UploadedFile;
  4. trait UploadableTrait
  5. {
  6. /**
  7. * Upload a single file in the server
  8. *
  9. * @param UploadedFile $file
  10. * @param null $folder
  11. * @param string $disk
  12. * @param null $filename
  13. * @return false|string
  14. */
  15. public function uploadOne(UploadedFile $file, $folder = null, $disk = 'public', $filename = null)
  16. {
  17. $name = !is_null($filename) ? $filename : str_random(25);
  18. return $file->storeAs(
  19. $folder,
  20. $name . "." . $file->getClientOriginalExtension(),
  21. $disk
  22. );
  23. }
  24. /**
  25. * @param UploadedFile $file
  26. *
  27. * @param string $folder
  28. * @param string $disk
  29. *
  30. * @return false|string
  31. */
  32. public function storeFile(UploadedFile $file, $folder = 'products', $disk = 'public')
  33. {
  34. return $file->store($folder, ['disk' => $disk]);
  35. }
  36. }