修改的 我试图通过jQuery / ajax()发送几个输入值,其中包含一个文件,而ajax()似乎并不同时支持这两个输入值。我发现FormData可以解决问题。 Using jQuery ajax to upload file and form data with formData() http://www.thefourtheye.in/2013/10/file-upload-with-jquery-and-ajax.html
更新 我不再有任何错误,但文件未正确上传到MySQL DB / LongBlob columb中。它似乎现在在PHP文件中正确接收。
HTML
<input type=hidden name=catselid id=catselid value=".$id.">
<input name=city id=city>
<input name=country id=country>
<input type=file name=picture id=picture >
<input name=update value=update type=submit class=update id=update />
的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 欢迎提出意见/建议 问候
答案 0 :(得分:0)
好的,我终于明白了。只是一个愚蠢的凌乱“,”留在PHP文件中。现在一切正常。 谢谢你的帮助!
答案 1 :(得分:-2)
无法通过真正的ajax调用将文件发送到服务器。我建议您将表单放在隐藏的iframe中并从父级提交。