2010-11-19 3 views
-1
<?php 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 30000)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    echo "Looks Great!"; 

    if (file_exists("localhost/upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "localhost/upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "localhost/upload/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Something went wrong."; 
    } 
?> 

Это файл upload.php, который я использую для загрузки файла изображения (jpg) в папку с именем upload. У меня есть форма в другом месте, и когда я выбираю файл и загружаю его, он перенаправляет меня на upload.php, и я всегда получаю сообщение типа «Что-то пошло не так». Я даже попробовал файл png .. Может ли помочь?Такая странная ошибка при загрузке файла изображения

+0

такой странный вопрос, вы должны просто сломать '4 или conditions', и проверить его состояние в каждом конкретном состояние ? – ajreal

+0

Для png вам также нужно добавить «image/png». –

+0

Может быть, 'var_dump ($ _ FILES);' может помочь. –

ответ

1

Ваш код почти такой же, как у W3Schools (http://www.w3schools.com/php/php_file_upload.asp), поэтому я бы сказал, вернитесь на этот сайт и снова возьмите код. Кроме того, если вы использовали штраф PNG, он никогда не передаст вашу первоначальную проверку, поскольку он не представлен в вашем исходном выражении if..else.

Что я хотел бы сделать здесь шаг через код и отладки:

  • Содержит ли форма правильного элемент загрузки файла с именем файла «» на странице HTML?
  • Размер файла менее 30 КБ?
  • Является ли тип изображения gif или jpg?
  • Является ли изображение, пробивающимся в объект $_FILES? Попробуйте сделать print_r на $_FILES.
  • У вас есть разрешение на размещение изображения в каталоге тем сервера?

Удачи вам в отслеживании проблемы.

+0

Большое вам спасибо. отличный ответ. – Jack

+0

Мне нужна другая помощь ... скажем, я загружаю файл успешно, как я могу восстановить файл с помощью php? – Jack

+0

Может ли у вас предоставить ссылку или какой-нибудь код? Спасибо – Jack

0

Моя ставка касается формы, отсутствующей атрибутом enctype = "multipart/form-data".

Немного стайлинг наконечника, вы могли бы заменить

if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 30000)) 

По

if(in_array($_FILES["file"]["type"], 
      array("image/gif", 
        "image/jpg", 
        "image/pjpeg")) && 
    $_FILES["file"]["size"] < 30000) 
Смежные вопросы