PHP загрузить файл на веб-сервер из формы. сообщение об ошибке - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь загрузить файл из формы php.Я проверил целевое местоположение с моим провайдером как "/ home / hulamyxr / public_html / POD /"

При выполнении страницы я получаю следующую ошибку:

Warning: move_uploaded_file(/home/hulamyxr/public_html/POD/ 1511.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/hulamyxr/public_html/hauliers/include/capturelocal2.php on line 124

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpyp3ERS' to '/home/hulamyxr/public_html/POD/ 1511.pdf' in /home/hulamyxr/public_html/hauliers/include/capturelocal2.php on line 124
POD Successfully uploaded for delivery 1511. filename: :

Код моей формы

<form enctype="multipart/form-data" method="post" action="capturelocal2.php">
<input type=file size=6 name=ref1pod id=ref1pod>
</form>

Мой PHP-код для загрузки файла

$ref1 = $_POST[ref1]; //this is the name I want the file to be
$ref1pod = $_POST[ref1pod]; // this is the name of the input field in the form

  move_uploaded_file($_FILES["ref1pod"]["tmp_name"],
  "/home/hulamyxr/public_html/POD/ " . ($ref1.".pdf"));

Любая помощь будет принята с благодарностью.Спасибо и всего наилучшего, Райан Смит

Ответы [ 4 ]

3 голосов
/ 30 января 2012

В вашем коде есть ошибка:

Вам необходимо изменить функцию move_uploaded_file.Я думаю, что есть дополнительный пробел, который вызывает проблему:

move_uploaded_file($_FILES["ref1pod"]["tmp_name"],"/home/hulamyxr/public_html/POD/" .($ref1.".pdf"));

Также я не уверен, откуда берется

$ref1 = $_POST[ref1]; //this is the name I want the file to be
$ref1pod = $_POST[ref1pod];

. В вашей форме нет таких значений,Вы загрузили только форму с загрузкой только.Также не забудьте поставить кавычки вокруг значений атрибутов в вашей форме и посте.

Являются ли ref1 и ref1pod константами.Если вы не ставите кавычки, PHP примет это как константы.Если они не являются константами, измените их на:

$ref1 = $_POST['ref1']; //this is the name I want the file to be
$ref1pod = $_POST['ref1pod'];

Также в вашей форме вставьте кавычки:

<form enctype="multipart/form-data" method="post" action="capturelocal2.php">
     <input type="file" size="6" name="ref1pod" id="ref1pod"/>
</form>

Убедитесь, что вы установили разрешения для папки загрузки.

Надеюсь, это поможет вам:)

1 голос
/ 30 января 2012

Пожалуйста, попробуйте следующий код.

 <?php
 if(isset($_REQUEST['upload'])) {
   $filename    =   $_FILES['ref1pod']['tmp_name'];
   if (file_exists($_SERVER['DOCUMENT_ROOT']."/POD/".$_FILES["ref1pod"]["name"]))
       {
        echo $_FILES["ref1pod"]["name"] . " Already Exists. ";
       }
      else {
   $path = $_SERVER['DOCUMENT_ROOT']."/POD/".$_FILES['ref1pod']['name'];
       move_uploaded_file($filename,$path);         
  }
}
?>

<form enctype="multipart/form-data" method="post" action="">
 <input type=file size=6 name=ref1pod id=ref1pod>
 <input type="submit" name="upload" value="upload" />
</form>

http://patelmilap.wordpress.com/2012/01/30/php-file-upload/

1 голос
/ 30 января 2012

Договорились с Филом, уберите пробел между строкой и именем файла

"/home/hulamyxr/public_html/POD/ " . ($ref1.".pdf"));
                                ^
                                |

, и вы также можете попробовать следующее:

$ref1 = $_POST[ref1];
$file_name = $_SERVER['DOCUMENT_ROOT'] . '/POD/' . $ref1 . '.pdf';
move_uploaded_file($_FILES['ref1pod']['tmp_name'], $file_name);
1 голос
/ 30 января 2012

Проверьте имена папок, они должны быть чувствительны к регистру, а также проверьте, имеет ли папка POD права 777 (CHMOD)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...