EditorMDController.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace Dcat\Admin\Http\Controllers;
  3. use Illuminate\Filesystem\FilesystemAdapter;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Storage;
  6. use Symfony\Component\HttpFoundation\File\UploadedFile;
  7. class EditorMDController
  8. {
  9. public function upload(Request $request)
  10. {
  11. $file = $request->file('editormd-image-file');
  12. $dir = trim($request->get('dir'), '/');
  13. $disk = $this->disk();
  14. $newName = $this->generateNewName($file);
  15. $disk->putFileAs($dir, $file, $newName);
  16. return ['success' => 1, 'url' => $disk->url("{$dir}/$newName")];
  17. }
  18. protected function generateNewName(UploadedFile $file)
  19. {
  20. return uniqid(md5($file->getClientOriginalName())).'.'.$file->getClientOriginalExtension();
  21. }
  22. /**
  23. * @return \Illuminate\Contracts\Filesystem\Filesystem|FilesystemAdapter
  24. */
  25. protected function disk()
  26. {
  27. $disk = request()->get('disk') ?: config('admin.upload.disk');
  28. return Storage::disk($disk);
  29. }
  30. }