Проблема с загрузкой AJAX PHP - PullRequest
1 голос
/ 30 августа 2011

Я создаю скрипт загрузки AJAX PHP, но у меня проблемы.После того, как пользователь выберет изображение для загрузки, оно будет отображаться в контейнере div, который я указал в файле javascript (хорошо).Но перемещение загруженного файла, похоже, не работает, или, по крайней мере, я думаю, что это проблема.Я установил для загрузки / папки разрешение 777.

Вот файл JS:

$(document).ready(function () {
  $("#upload-image-button").hide();

  var input = document.getElementById("images"),
    formdata = false;

  function showUploadedItem(source) {
    var list = document.getElementById("image-list"),
        li = document.createElement("li"),
        img = document.createElement("img");
    img.src = source;
    $("#topic-img-container").html(img);
  }  

  if (window.FormData) {
    formdata = new FormData();
    $("#upload-image-button").hide();
  }

  $("input[type='file']").live("change", function(event) {
    $("#response").html("Uploading...");
    var i = 0, len = this.files.length, img, reader, file;

    for (; i < len; i++) {
      file = this.files[i];

      if (!!file.type.match(/image.*/)) {
        if (window.FileReader) {
          reader = new FileReader();
          reader.onloadend = function (e) {
            showUploadedItem(e.target.result, file.fileName);
          };
          reader.readAsDataURL(file);
        }
        if (formdata) {
          formdata.append("images[]", file);
        }
      }
    }

    if (formdata) {
      $.ajax({
        url: "db/upload_image.php",
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (res) {
          document.getElementById("response").innerHTML = res;
        }
      });
    }
  }, false);
});

Вот файл PHP:

<?php
  foreach($_FILES["images"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
      print_r($_FILES);
      $name = $_FILES["images"]["name"][$key];
      move_uploaded_file($FILES["images"]["tmp_name"][$key], "uploads/" . $_FILES["images"]["name"][$key]);
      echo $FILES["images"]["tmp_name"][$key];
    }
  }

  echo "Success";
?>

Он попадает в цикл, когда нет ошибки.Когда я захожу в папку загрузки, там нет новых файлов.Есть идеи, почему это может быть?

1 Ответ

0 голосов
/ 30 августа 2011

Вы не можете загружать файлы, используя AJAX.Вам нужен помощник Iframe, который вы отправляете обычной формой.

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