Проблемы с загрузкой файла в php - PullRequest
0 голосов
/ 09 июня 2009

Я пытаюсь загрузить файл на сервер, используя PHP. Я не могу заставить его работать. Вот код:

if( isset($_POST['Upload']) )
{

   //size condition 
   if ( $_FILES['uploaded']['size'] > 350000) 
   { 
      $mesg = "Your file is too large.<br>"; 
      exit; 
   } 

   if( move_uploaded_file($_FILES['uploaded']['tmp_name'], "upload/" . $_FILES['uploaded']['name'] ) )
   { 
      $mesg =  "The file ". basename( $_FILES['uploaded']['name']). " has been uploaded";    
   } 
   else 
   {     
      $mesg =  "Sorry, there was a problem uploading your file."; 
   }    
}
else
{
   $mesg = "Select a File to upload.";
}

Вот код формы, которую я использую для отправки файла:

<?
echo $mesg;
?>
<br /><br />
<form enctype="multipart/form-data" action="" method="POST">
Please choose a file: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form>

Ответы [ 3 ]

6 голосов
/ 09 июня 2009

Вам нужно enctype="multipart/form-data" внутри тега <form>, иначе ничего не будет загружено.

Для получения дополнительной информации ознакомьтесь с руководством по PHP .

Кроме того, я не уверен, что вы просто делаете это для проверки функциональности, но вам следует опасаться помещать загруженные файлы в доступную в Интернете папку, особенно с их оригинальными именами. Это оставляет открытой возможность для кого-либо загрузить вредоносный скрипт и потенциально захватить ваш сервер.

3 голосов
/ 09 июня 2009

Ваша кнопка отправки не имеет названия:

<input type="submit" value="Upload" />

Вы проверяете на $_POST['Upload'], так что вы, вероятно, хотите:

<input type="submit" value="Upload" name="Upload" />
1 голос
/ 09 июня 2009

Измените свою форму на

<form action="" method="POST" enctype="multipart/form-data">
...