2013-04-29 4 views
2

Я пытаюсь загрузить файл (msword/doc) в папку сервера Apache через HTML-форму. Он работает, когда я тестирую его локально (я тестирую его через MAMP), но когда я загружаю его на удаленный сервер (например, GoDaddy), он не работает. Он показывает «Проблема с загрузкой файла».Загрузка файла PHP (работает локально, но не на удаленном сервере).

Ниже приведен фрагмент кода, который обрабатывает загрузку файла. Я не могу понять, что не так с моим условным. Любые мысли будут оценены!

 // Move the file to the target upload folder 
     $target = FILE_UPLOADPATH . basename($new_file); 
     if (move_uploaded_file($_FILES['new_file']['tmp_name'], $target)) 
     { 
     // The new file move was successful, now make sure any old file is deleted 
     if (!empty($old_file) && ($old_file != $new_file)) 
     { 
      @unlink(FILE_UPLOADPATH . $old_file); 
     } 
     } 
     else 
     { 
     // The new file move failed, so delete the temporary file and set the error flag 
     @unlink($_FILES['new_file']['tmp_name']); 
     echo 'There was a problem with the file upload.' . PHP_EOL; 
     } 
+0

Вы можете использовать полный массив $ _FILES, так как значение параметра ошибки может помочь пролить свет на это – fullybaked

+0

Вот массив массивов $ _FILES: Array ([new_file] => Array ([name] => sample .doc [type] => msword/doc [tmp_name] =>/tmp/phpsTu20P [error] => 0 [size] => 119674)) Мысли? – kthaker

+0

Значение параметра ошибки равно 0. – kthaker

ответ

0

Если $_FILES['new_file']['error'] == 0 то загрузка не проблема, но вызов move_uploaded_file() есть. Вероятно, у вас есть неправильные разрешения для каталога, в который вы пытаетесь переместить файл.

0

У вас есть разрешение на скачивание файлов, которые вы загружаете , на? Если нет, используйте chmod 0777 и проверьте это.

+0

Да, у него есть разрешения chmod 775. – kthaker

0

Имеет ли ваша папка назначения правильные разрешения? http://en.wikipedia.org/wiki/Chmod Справочник для типичных потребностей 775: What are the proper permissions for an upload folder with PHP/Apache?

Кроме того, вы хотите, чтобы пользователи имели прямой доступ к файлу? Если нет, вы должны подумать о том, чтобы записать файл в папку, расположенную над корневым каталогом.

+0

Я дважды проверял разрешения. Это 775. И да, я хочу, чтобы у пользователей был прямой доступ к файлу. Я думаю, проблема может быть в строке «move_uploaded_file». База данных хранит имя файла в таблице и показывает его в форме после загрузки. Но когда я проверяю папку для загрузки, файл отсутствует. – kthaker

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