如何解决这个jQuery ajax post方法在上传图片时取消定义索引问题?

时间:2016-01-15 12:46:40

标签: javascript php jquery ajax

我想使用Ajax Post方法上传照片,  这是我的html和javascript代码



<script>
        $(document).ready(function(){
            $('#multiple_upload_form').submit(function(e){
                e.preventDefault();
                var upload = $('#images').val();
                   $.ajax({
                      type:'POST',
                       url:'album.php',
                       data:
                       {
                         upload : images  
                       },                       
                       cache:false,
                       contentType:false,
                       processData:false,
                       success:function(data)
                       {
                       $('#image_preview').html(data);
                       
                       },
                        error:function()
                        {
                            $('#image_preview').html('error');
                        }
                   });
                return false; 
            }); 
        });
   </script>
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="album.php" name="upload_form" id="multiple_upload_form" role="form" enctype="multipart/form-data">
        
          <div class="form-group">
            <label for="email">Album Name</label>
            <input type="text" name="aname" class="form-control" id="aname">
          </div>
          <div class="form-group">
            <label for="file">Upload Photos:</label>
            <input type="file" id="images" name="images" />
          </div>
          <div id="images_preview"></div>
      </div>
       <center class="feedback" style="display:none">Loading...</center>
          <button id="submit" name="submitt" class="btn btn-default">Submit</button>
     </form>
&#13;
&#13;
&#13;

这是我的PHP CODING

if(isset($_FILES['images']['name']) )
{
    $img = $_FILES['images']['name'];

    if(!empty($img))
    {
        echo 'MaxSteel';
    }
}
else
{
    echo 'Same Problem';
}

我有未定义的索引:图像 输入类型=&#34;文本&#34;它可以正常工作但是当谈到&#34; file&#34; type is shows error帮我解决这个问题

3 个答案:

答案 0 :(得分:0)

由于某些错误,该文件无法上传。您应该查看与文件上传相关的参数,如UPLOAD_MAX_SIZE等。

您可以使用var_dump($ file)查看$ _FILE内容。

答案 1 :(得分:0)

您需要通过FormData()发送数据。 尝试这样的事情:

var images = $("#images").get(0).files;
var formData = new FormData();

$.each(images, function(i, image) {
  data.append("images[]", image);
});

然后发送formData作为$ .ajax数据。

答案 2 :(得分:0)

完成此代码,可能有所帮助

                   var data = new FormData();  
                    data.append("Avatar", file.files[0]);
                    $.ajax({
                     url: "http://192.168.1.1:2002/,
                     type: "POST",             
                     data:data,
                     contentType: false,      
                     cache: false, 
                     processData:false,  
                     success: function(data)
                      {
                     console.log(data);
                      }

                     });