2015-07-07 3 views
0

У меня есть этот код:Простой FileUpload с PHP не работает

$filename=$_FILES["fileToUpload"]["name"]; 
$extension=explode(".", $filename); 
$newfilename=$rezeptID .".".$extension; 


     if ($_FILES["fileToUpload"]["error"] > 0) 
     { 
     echo "Return Code: " . $_FILES["fileToUpload"]["error"] . "<br />"; 
     } 
     else 
     { 
     echo "Upload: " . $_FILES["fileToUpload"]["name"] . "<br />"; 
     echo "Type: " . $_FILES["fileToUpload"]["type"] . "<br />"; 
     echo "Size: " . ($_FILES["fileToUpload"]["size"]/1024) . " Kb<br />"; 
     echo "Temp file: " . $_FILES["fileToUpload"]["tmp_name"] . "<br />"; 

     if (file_exists("/Images/Rezepte/" . $_FILES["fileToUpload"]["name"])) 
      { 
      echo $_FILES["fileToUpload"]["name"] . " already exists. "; 
      } 
     else 
      { 
      move_uploaded_file($filename, 
      "/Images/Rezepte/" . $newfilename); 
      echo "Stored in: " . "/Images/Rezepte/" .$newfilename; 
      } 
     } 

переменная $ rezeptinfo просто номер и правильно, если вам интересно.

Когда я присылаю свою форму, я получаю эту информацию о файле:

"Загрузить: Тип: Размер: 0 Kb Temp файл: Хранится в:/Images/Rezepte/10."

Почему расширение файла и вся основная информация mssing. 10 - значение $ rezeptID. Что я делаю не так?

ответ

0

первых, ваш способ получить расширение возвращает массив и поэтому не может быть объединен в строку, необходимо указать индекс массива, где расширение является что 1:

$newfilename=$rezeptID .".".$extension[1]; 

или

$newfilename=$rezeptID .".".end($extension); 

или

$extension = pathinfo($filename, PATHINFO_EXTENSION); 

также, у если переместить загруженный файл из temp_ путь к файлу

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],"Images/" .$newfilename); 

Вы должны также гарантировать, что ENCTYPE = «многочастные/формы-данные» включены в HTML-формах собственности

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