2015-10-17 3 views
0

Я скопировал весь код для загрузки файлов в проект Symfony2, в котором хранятся все данные в папке web/uploads. Код от here.Ошибка при загрузке файла/изображения в моем проекте Symfony2

Это работает отлично в локальном хосте, но на удаленном сервере он бросает ошибку:

Could not create target directory to move temporary file into. 
    500 Internal Server Error - RuntimeException 

enter image description here

Пожалуйста решить эту проблему ... Заранее спасибо!

+2

Как видно из строки 40 изображения, ошибка возникла, когда код попытался создать папку, вы должны увидеть в своих разрешениях сервера, если вы можете создавать новые папки. –

+1

Да, это проблема разрешения, вам нужно будет chmod, что плохой мальчик! –

ответ

0

Мне кажется, что путь к каталогу загрузки неправильный. В нем говорится, что вы пытаетесь создать: «% kernel.root_dir%/../web/uploads»

Вы shoud сначала выбираете параметр «kernel.root_dir» из контейнера, а затем создаете путь к загрузке каталога. Как это:

$kernelRootDir = $this->container->getParameter('kernel.root_dir'); 
$uploadDirPath = $kernelRootDir . '/../web/uploads'; 

Мой совет должен был бы вручную создать эту папку, и установите его разрешения на 775. Если это необходимо, чтобы PHP создает реж загрузки, убедитесь, что пользователь Apache имеет правами на запись на/веб-каталог

+0

Спасибо за ваш ценный ответ, но даже его не работает .. Я пробовал все возможные пути от вашего ответа. –

+0

Каков путь, который вы пытаетесь создать? Можете ли вы создать его вручную и просто переместить туда файлы? –

+0

вручную означает, ранее было 'protected static $ uploadDirectory = '% kernel.root_dir%/../uploads';' in 'Document.php' Я пробовал давать' $ uploadDirecctory = '/ uploads'' и конкатенируется во всех методах, где эта переменная $ uploadDirectory вызывается с помощью '$ kernelRootDir = $ this-> container-> getParameter ('kernel.root_dir');' как '$ uploadDirectory.self :: $ uploadDirectory' –

Смежные вопросы