2010-02-08 2 views
1

Я загружаю файлы через JS и сохраняю временный путь в сеансе. Чем я могу использовать следующий код для перемещения файлов.move_uploaded_file не работает

if(move_uploaded_file($_SESSION['temp_img'][$key]['path'], $dest.$bigimg)){ 

$dest и $bigimg определены ранее в сценарии с идентификатором из базы данных.

Любые идеи или альтернативы?

ответ

2

Ответ MANCHUCK был близок, но не совсем там. Вы должны вызвать move_uploaded_file в скрипте, в который был загружен файл. Вы не можете делать то, что делаете, то есть «хранить временный путь в сеансе», потому что этот путь действителен только для одного запроса.

Из PHP инструкции:

Файл будет удален из временного каталога в конце запроса, если он не был перемещен в сторону или переименован.

(выделено мной)

-2

Что такое вывод $ _SESSION ['temp_img'] [$ key] ['path'], также у вас есть разрешение на запись в веб-каталог, где вы размещаете файлы. Возможно, вам придется установить его на 777 для некоторых хостов, чтобы веб-сервер мог там писать.

+0

, так как он будет загружен в другой сценарий, move_uploaded_file не удается, так как ни один файл не был на самом деле отвечал на этот сценарий – MANCHUCK

+0

/TMP/phpbvWPqW -The выход из сеанса и разрешений устанавливаются – Ross

1

файл move_uploaded_file проверяет, что файл был загружен на эту страницу. Фактически вы загружаете файл в другой скрипт PHP, а затем сохраняете его в сеансе. Вместо использования move_upload_file используйте rename.

+0

Это показывает проблему, однако она все равно не сработает. Если он не назовет 'move_uploaded_file' до того, как запрос завершится, файл будет удален. – Josh

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