Задать вопрос
@Danila534

Почему не сохраняются файлы на диске?

Добрый вечер,
Прочитав документацию о file systems, так и не смог освоиться... Суть в том, что при отправки формы с загруженным изображением, оно не отправляет его на диск.
Может вы в курсе, пожалуйста, только не отправляйте в Google или документации, с ними я уже ознакомлён.

Сама форма:
<form action="{{ route('image.upload') }}" method="POST" enctype="multipart/form-data">
     {{ csrf_field() }}
     <div class="form-group">
         <input type="file" name="image" id="image">
         <button class="btn btn-default" type="submit">Загрузка</button>
     </div>
 </form>


Контроллер:
public function upload(Request $request)
    {
       $path = $request->file('image')->store('uploads', 'public');

       return view('about.complaint');
    }


Маршрут:
Route::post('/image/upload', 'about\complaintController@upload')->name('image.upload');


filesystems.php
'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],


Ошибка при отправке:
fopen(): Filename cannot be empty

Аргументы по загрузке:
"uploads"
UploadedFile {#607 ▼
  -test: false
  -originalName: "head555.png"
  -mimeType: "image/png"
  -error: 0
  #hashName: "VvplFvJmBLPRtXD1RWN6lacDnVZwxjJPV93SOZbc"
  path: "C:\Windows\Temp"
  filename: "php98A8.tmp"
  basename: "php98A8.tmp"
  pathname: "C:\Windows\Temp\php98A8.tmp"
  extension: "tmp"
  realPath: false
  aTime: 2021-01-03 23:15:59
  mTime: 2021-01-03 23:15:59
  cTime: 2021-01-03 23:15:59
  inode: 0
  size: 465540
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\Windows\Temp\php98A8.tmp"
}
"VvplFvJmBLPRtXD1RWN6lacDnVZwxjJPV93SOZbc.png"


На что опирается дебаггер:
$path = $request->file('image')->store('uploads', 'public');

  Аргументы:
"uploads"
"public"
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@Kostik_1993
Web Developer
только не отправляйте в Google или документации, с ними я уже ознакомлён.

Я пожалуй все таки это сделаю)) https://www.google.com/search?q=fopen()%3A+Filenam...
Ответ написан
Вдруг пригодится - у меня так фотки закачиваются. Лишнее убрал
if ($request->hasFile('somefile')) {
        $file = $request->file('somefile');
        $path = Storage::disk('public')->put('photos_news', $file);
        // $path = $file->store('news'); // вот такое даже закомментировано... со store не сложилось. через put работает
        if ($file) {
            $fileName = $request->file('somefile')->getClientOriginalName();
            return response()->json(['path' => $path, 'success' => 'есть файл']);
        } else {
            return response()->json(['success' => 'шляпа)']);
        }
    }
Ответ написан
pLavrenov
@pLavrenov
Разработка сайтов
Есть же... spatie/laravel-medialibrary
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы