Кто загружал изображение с помощью jQuery Ошибка при отправке изображения с использованием ajax - PullRequest
0 голосов
/ 19 ноября 2018

У меня ошибка при попытке загрузить изображение с использованием jQuery и ajax.

Вот мой HTML:

<label for="img_add_galery">
                    <a class="add">
                        <img click="image_galery" src="../../img/ui/black.png" alt="images">
                    </a>
                  </label>
                </div>
                <input type="file" id="img_add_galery" name="img_add_galery" style="display:none;"/>

Это мой JS:

$(document).on('change','#img_add_galery',function(){
    var property = document.getElementById('img_add_galery').files[0];
    var image_name = property.name;
    var image_extension = image_name.split('.').pop().toLowerCase();
    if(jQuery.inArray(image_extension, ['gif','png','jpg','jpeg']) == -1)
    {
      alert('invalid image type');
    }
    var image_size = property.size;
    if(image_size > 2000000000000)
    {
      alert('image is to big');
    }
    else
    {
      console.log(property);
        var form_data = new FormData();
        form_data.append("file", property);
        $.ajax({
          url: "traitement/add_image_galery.php",
          method: "POST",
          data: form_data,
          contentType:false,
          cache:false,
          processData:false,
          success:function(data)
          {
            $(".tz-gallery").children().append(data);
        }
      })
  }
})

и мой php

var_dump($_FILES["img_add_galery"]["name"]);

if($_FILES["file_img"]["name"] != '')

{

  $test = explode(".",$_FILES["file_img"]["name"]);

  $extension = end($test);

  $name = rand(1,9999) . '.' . $extension;

  $location = '../../../img/galerie/'.$name;

  move_uploaded_file($_FILES["file_img"]["tmp_name"],$location);

  echo '<div class="col-sm-6 col-md-4">
      <a class="delete" img="'.$location.'">
          <img click="image_galery" src="'.$location.'" alt="images">
      </a>
  </div>';
}

1 Ответ

0 голосов
/ 19 ноября 2018

Когда вы добавляете файл к вашему FormData объекту, вы используете file в качестве его имени, но в PHP вы используете file_img, оба должны совпадать.

$_FILES["file"]["name"]

На самом деле, я думаю, что выследует везде использовать одно и то же имя, чтобы избежать путаницы

<input type="file" id="img_add_galery" name="img_add_galery" style="display:none;"/>
form_data.append("img_add_galery", property);
$_FILES["img_add_galery"]["name"]

Также, если вы хотите проверить, что происходит в массиве файлов, вы должны сбросить все это var_dump($_FILES);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...