使用FormData ajax()的几个输入jQuery文件上传失败

编辑我试图通过jQuery / ajax()发送几个输入值,其中包含一个文件,ajax()似乎不能同时支持这两个。 我发现FormData可以解决这个问题。 使用jQuery ajax使用formData() http://www.thefourtheye.in/2013/10/file-upload-with-jquery-and-ajax.html 上传文件和表单数据

更新我不再有任何错误,但文件没有正确上传到MySQL DB / LongBlob columb。 现在似乎在PHP文件中正确接收了它。

HTML

     

JavaScript的

  $(".update").click(function(){ $.ajax({ url: 'catsel_change.php', type: 'POST', contentType:false, processData: false, data: function(){ var data = new FormData(); data.append('picture',$('#picture').get(0).files[0]); data.append('city' , $('#cityname').val()); data.append('country', $('#country').val()); data.append('id', $('#catselid').val()); return data; }(), success: function(result) { alert(result); }, error: function(xhr, result, errorThrown){ alert('Request failed.'); } }); }); 

PHP

 if(is_uploaded_file($_FILES['picture']['tmp_name'])){ $picture =addslashes (file_get_contents($_FILES['picture']['tmp_name'])); ... } 

仅供参考,我正在使用jQuery 1.9.1评论/建议,欢迎问候

好的,我终于明白了。 只是一个愚蠢的杂乱“,”留在PHP文件中。 现在一切正常。 感谢帮助!

无法通过真正的ajax调用将文件发送到服务器。 我建议您将表单放在隐藏的iframe中并从父级提交。