Когда я пытаюсь загрузить файл следующим образом:Laravel 5.2 Загрузка файла
$name = $img->getClientOriginalName();
$fullPath = Product::getUploadPath(); // Returns public_path(); with custom directory appended
$uploaded = $img->move($fullPath, $name);
Я получаю ошибку ниже:
Could not move the file
"/private/var/folders/1l/fxl7spqj2p113fpffm3k0sy00000gn/T/phpIgpWGy" to
"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg"()
Для interestsake, я построил весь путь разрешить для изображения, и передал это как аргумент метода move()
. Память служила тем, что она работала ранее.
$uploaded = $img->move($fullPath.'/'.$name);
Никаких исключений не выбрасывается, однако, загруженный файл, теперь становится каталогом:
"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg/"
Я очень близко к вождения кулаком через мой экран.
Это может быть лишение сна, но я также вполне уверен, что этот код работал ранее, без каких-либо известных проблем. Недавно я установил плагин вмешательства для изменения размеров изображений, однако при отладке я удалил плагин из моего ядра приложения. –
Не копаясь слишком далеко, вы проверяли разрешения на целевой каталог? Метод 'move()' класса UploadedFile вызывает функцию 'move_uploaded_file()' PHP. Они подавляют ошибки из этого вызова, но бросают «FileException» с этим пользовательским сообщением, которое вы видите. Файл, созданный как каталог со второй попыткой, имеет смысл, поскольку первым параметром является целевой каталог, а второе имя - это имя файла - без имени файла, разрешен только каталог. – stratedge
Возможно ли, что в случае не существующего каталога и laravel, создающего путь при вызове 'move()', что данный каталог может иметь недостаточные разрешения? Кроме того, когда он создает каталог, каталог не пуст, кажется, является временным PHP, находящимся внутри. –