Есть так много подобных проблем, но ни один из них не был точно таким же.Laravel/php upload не работает
Вот код, я использую в пределах Фасад
public function create($input, $index = false, $params = false)
{
$file = Input::file($input);
if ($file === null)
{
return false;
}
if ($index !== false)
{
$file = $file[$index];
}
else
{
$file = reset($file);
}
if ($file === null)
{
return false;
}
$image = new ImageModel;
$image->mime = $file->getClientMimeType();
$image->extension = $file->guessClientExtension();
$image->filename = $file->getClientOriginalName();
if ($params !== false)
{
//there are parameters to add
}
$image->save();
$image->hash = md5($image->id);
$path = str_split($image->hash);
$path = array_slice($path, 0, 5);
$system_path = implode(DIRECTORY_SEPARATOR, $path);
$fileName = substr($image->hash, 5);
$path[] = $fileName;
$image->path = implode('/', $path);
$destination_path = implode(DIRECTORY_SEPARATOR, [public_path(), 'images', $system_path, null]);
if (self::_makePath($destination_path))
{
$file_path = implode('.', [$destination_path.$fileName, $image->extension]);
$image->save();
dd([
$file->getRealPath(),
file_exists($file->getRealPath()),
file_exists($destination_path),
$file_path,
is_writable($destination_path),
move_uploaded_file($file->getRealPath(), $file_path)
]);
move_uploaded_file($file->getRealPath(), $file_path);
//$file->move($destination_path, $fileName);
$this->image = $image;
return $this->image;
}
return false;
}
Цель этой функции заключается в создании хэш-идентификатор изображения, а затем использовать, чтобы создать путь к каталогу изображения, обеспечивая загрузка всегда будет уникальной.
Эта функция отлично работает с использованием $file->move
довольно недавно в пристройке (laravel 4.2, а не последней версии усадьбы, также скорректированной до степени, но ни одно из значений php/nginx не было изменено), однако без каких-либо корректировок в течение некоторого времени он прекратил работать. Я попытался изменить функцию на альтернативные способы загрузки, но ничего. Все это говорит о том, что файл нельзя загрузить по неизвестной причине.
Использование кода выше У меня есть некоторые тесты там, если файл может быть загружен/перемещен, и все это проверяется, даже move_uploaded_file
возвращает true, однако файл не перемещается.
Не глядя слишком внимательно на код, вы проверили разрешения целевого каталога? – lukasgeiter
Да, я использовал 'is_writable' для проверки с помощью дампа. –