У меня проблемы с загрузкой файлов при работе с Laravel в моей системе Windows 7. Нет проблем с загрузкой файлов, но когда я вижу каталог назначения, загруженный файл отсутствует.
После поиска в Google и на форумах я обнаружил, что может быть проблема с каталогом «Temp».
Выход из dd(sys_get_temp_dir())
является C:\Users\RAGHAV~1\AppData\Local\Temp
,
Однако нет каталога под названием RAGHAV~1
(Я включил, чтобы увидеть скрытые папки). В php.ini
upload_tmp_dir
установлен в C:\xampp\tmp
,
Есть ли конфликт между этими настройками? Можете ли вы помочь мне заставить загрузку файлов работать?
Код в контроллере, который обрабатывает загруженные файлы:
$validator = $this->brandValidator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$image_directory = public_path() . '/Uploads/Products/';
$result = $request->file('image')->move($image_directory);
$brand_name = $request->input('brand_name');
$image = $image_directory . $request->file('image')->getClientOriginalName();
$id = Brand::create([
'brand_name' => $brand_name,
'image' => $image,
]);
Вы не указали путь к файлу. Просто замени это
$image_directory = public_path() . '/Uploads/Products/';
$result = $request->file('image')->move($image_directory);
с этим
$file = $request->file('image');
$filename = $file->getClientOriginalName().'.' . $file->getClientOriginalExtension();
$file->move(public_path('Uploads/Products/'), $filename);
Других решений пока нет …