У меня есть форма, которая может загрузить изображение на мой сайт.
У меня есть тысячи изображений для загрузки в папку (тестовые изображения). Я создаю команду symfony для импорта и копирования моих изображений в папку назначения.
$url = '/tmp/testimg.jpg';
$photo = new Photo();
$photo->setName('test name');
$photo->setFile(new UploadedFile($url, basename($url)));
$photo->upload();
Когда я выполняю команду, у меня есть:
[Symfony\Component\HttpFoundation\File\Exception\FileException]
Файл "test name" не был загружен из-за неизвестной ошибки.
Функция Photo :: upload:
public function upload()
{
if (null === $this->file) {
return;
}
$this->file->move(
"/home/julien/work/mysite/src/MyProject/PhotoBundle/Entity/../../../../web/uploads/photos",
$this->name
);
$this->file = null;
}
Это похоже на сбой метода move. Использование абсолютных путей может быть проблемой здесь. Вы тоже можете попробовать:
__DIR__ . '/../../../../web/uploads/photos'
Также убедитесь, что у вас есть правильный доступ к этой папке.
Для этого я также хотел бы добавить отладчик. Вы можете легко настроить сеанс отладки с помощью XDebug и пройти через свои линии. Всегда полезно входить в каждую функцию вашего кода и видеть, где он ломается.
Если ваш код по-прежнему не работает, я предлагаю вам реализовать этот пример и посмотреть, работает ли он:
http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html