2015-08-09 2 views
-2

Прежде чем вы скажете, что это дубликат, я скажу, что я пробовал все, что мог найти в Интернете, но ничего не работает. Я пытаюсь загрузить изображение, и это дает мне эту ошибку:Ошибка: Неопределенный индекс: image

Undefined индекс: изображения

<?php 


$target_dir = "images/"; 
    $target_file = $target_dir . basename($_FILES["image"]["name"]); 

    $uploadOk = 1; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    if(isset($_POST["submit"])) { 


     $check = getimagesize($_FILES["image"]["tmp_name"]); 
     if($check !== false) { 
      echo "File is an image - " . $check["mime"] . "."; 
      $uploadOk = 1; 
     } else { 
      echo "File is not an image."; 
      $uploadOk = 0; 
     } 
    } 

    if (file_exists($target_file)) { 

     echo "Sorry, file already exists."; 
     $uploadOk = 0; 

    } 

    if ($uploadOk == 0) { 
     die(mysqli_error($dbc)); 
    echo "Sorry, your file was not uploaded."; 
} else { 
    if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["image"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
    } 

?> 
<form action="SchimbareImagine.blade.php" method="POST" enctype="multipart/form-data"> 
<div class="form-group"> 
     <label>Poster:</label> 
     <div class="col-lg-10"> 
      <input id="input-5" type="file" name = "image" > 
     </div> 
    </div> 
</div> 

<button name = "submit" type="submit" id = "submit" >Submit</button> 
</form> 

Кто-нибудь знает, как я могу это исправить?

+1

Просто проверьте, если '$ _FILES ['image'] 'существует с использованием' isset() 'перед тем, как вы попытаетесь его использовать. –

+0

теперь он говорит: ** Неопределенная переменная: target_file ** – Urarii

+0

Можете ли вы опубликовать измененный код, пожалуйста? –

ответ

1

Вы получаете эту ошибку, так как переменная/массив $_FILES["image"] еще не была установлена.

Как вы уже используете метод die(), вы могли бы предотвратить код, чтобы продолжить выполнение что-то вроде этого:

if(!isset($_FILES["image"])){ 
    echo "ERROR: no image revived"; 
    die(); 
} 

Try это так:

if(isset($_FILES["image"])){ 
$target_dir = "images/"; 
    $target_file = $target_dir . basename($_FILES["image"]["name"]); 

    $uploadOk = 1; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    if(isset($_POST["submit"])) { 


     $check = getimagesize($_FILES["image"]["tmp_name"]); 
     if($check !== false) { 
      echo "File is an image - " . $check["mime"] . "."; 
      $uploadOk = 1; 
     } else { 
      echo "File is not an image."; 
      $uploadOk = 0; 
     } 
    } 

    if (file_exists($target_file)) { 

     echo "Sorry, file already exists."; 
     $uploadOk = 0; 

    } 

    if ($uploadOk == 0) { 
     die(mysqli_error($dbc)); 
    echo "Sorry, your file was not uploaded."; 
    } else { 
    if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["image"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
    } 
} 
+0

hmm проблема в том, что ошибка появляется после того, как я перехожу на страницу, я не могу ничего отправить или что-либо сделать. (Является ли тот факт, что я использую laravel?) – Urarii

+0

Я обновил свой ответ. Пожалуйста, проверьте последнюю строку, которую я добавил в свой ответ. –

+0

та же ошибка, ничего не изменилось. Проблема с кодом появляется в этой строке ** $ target_file = $ target_dir. basename ($ _ FILES ["image"] ["name"]); ** – Urarii

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