2016-11-12 4 views
-1
clearstatcache(); 
    if($_FILES['images']){ 
     if ($_FILES['images']['error'] !== UPLOAD_ERR_OK) { 
       $error[] = "Upload failed with error code " . $_FILES['images']['error'];         
     } 

     $info = getimagesize($_FILES['images']['tmp_name']); 
     if ($info === FALSE) { 
      $error[] = "Unable to determine image type of uploaded file"; 
     } 

     if (($info[2] !== IMAGETYPE_GIF) && ($info[2] !== IMAGETYPE_JPEG) && ($info[2] !== IMAGETYPE_PNG)) { 
       $error[] = "Not a gif/jpeg/png"; 
     } 
     if ($_FILES["images"]["size"] > 100000) {//1mb limit 
     $error[] = "Sorry, your file is too large."; 
     } 
} 

это мой php-код. проверяя, является ли файл пустым. и я хочу. если файл существует, то php проверит файл. но если пользователь не выбрал изображение. проверка будет просто игнорировать его. Я не могу отладить его. если im не подбирает изображение, код еще не подтвержден и ошибка указана Warning: getimagesize(): Filename cannot be empty in C:\xampp\htdocs\savings\LiveUpdate.php on line 10php file image upload валидация

+0

редактировать свой вопрос, чтобы включить форму HTML для этого. Вам также следует, чтобы эта ошибка Google, есть много хитов и может быть из-за многих причин. –

+0

Возможный дубликат [Warning: getimagesize() \ [function.getimagesize \]: Имя файла не может быть пустым предупреждающим сообщением?] (Http://stackoverflow.com/questions/16043892/warning-getimagesize-function-getimagesize-filename-cannot -be-empty-warnin) –

+0

Возможный дубликат [Загрузка фотогалереи getimagesize() предупреждение - имя файла не может быть пустым] (http://stackoverflow.com/questions/17632353/photo-upload-getimagesize-warning-filename-cannot-be -empty) –

ответ

1

Вы не разместили свой html, но имя images предлагает вам многократную загрузку.

Вы должны указать элемент вашего массива. Позвольте мне сказать [0]. Смотрите более документации: http://php.net/manual/en/features.file-upload.multiple.php

Измените ваш код так (см добавляемые else, потому что, если ваша загрузка не удается, вам нужно всего лишь получить сообщение об ошибке!)

clearstatcache(); 

if(is_array($_FILES['images'])){ 
    if ($_FILES['images']['error'][0] !== UPLOAD_ERR_OK) { 
     $error[] = "Upload failed with error code " . $_FILES['images']['error'][0];         
    } 
    else { 
     $info = getimagesize($_FILES['images']['tmp_name'][0]); 
     if ($info === FALSE) { 
      $error[] = "Unable to determine image type of uploaded file"; 
     } 

     if (($info[2] !== IMAGETYPE_GIF) && ($info[2] !== IMAGETYPE_JPEG) && ($info[2] !== IMAGETYPE_PNG)) { 
      $error[] = "Not a gif/jpeg/png"; 
     } 
     if ($_FILES["images"]["size"][0] > 100000) {//1mb limit 
      $error[] = "Sorry, your file is too large."; 
     } 
    } 
} 
+1

Я боюсь, что OP пытается загрузить файлы с момента создания своих учетных записей в Stack. Взгляните на все их вопросы http://stackoverflow.com/users/7148641/kenneth-suaverdez - Я думаю, вы можете быть очень долго. –

+0

его работа. но у меня есть еще одна проблема. если я просто отправлю (не меняя файл или открывая какой-либо файл), мой код все еще проверяет, даже я не выбрал файл и ошибку php Предупреждение: getimagesize(): Имя файла не может быть пустым в C: \ xampp \ htdocs \ экономия \ LiveUpdate.php в строке 10 –

+0

Я редактировал свой ответ, пока вы комментировали. См. Мое редактирование. – schellingerht