我使用PhoneGap开发移动应用程序,并想知道是否有办法使用jQuery的ajax将文件上传到服务器(php)。 我使用ajax因为我想避免从网页重定向(当然,我想重定向到我自己的页面)。 所以,这是我的一些代码:
$.ajax({
url: url,
data: $("#myform").serialize(),
type: "post",
dataType: "json"
});
我在下面尝试过这些组合,但没有任何效果。有什么想法吗?
contentType: false
cache: false
processData: false
contentType: "multipart/form-data"
答案 0 :(得分:1)
你可能不得不使用PhoneGap的FileTransfer类。
文档和一些示例代码在此处:http://docs.phonegap.com/en/2.0.0/cordova_file_file.md.html#FileTransfer
答案 1 :(得分:1)
<script>
$(document).ready(function(){
$('#button').click(function(){
var formData = new FormData($('form')[0]);
alert(formData)
$.ajax({
url: '/testupload2/', //server script to process data
type: 'POST',
xhr: function() { // custom xhr
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
}
return myXhr;
},
//Ajax events
success: function(data){
alert('Done')
},
error: function(jqXHR, textStatus, errorThrown){
alert("Some Error!")
},
// Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false
});
});
function progressHandlingFunction(e){
if(e.lengthComputable){
$('progress').attr({value:e.loaded,max:e.total});
}
}
</script>
HTML正文部分:
<body>
<form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" id ="button" value="Upload" />
</form>
<progress>
progressHandlingFunction()
</progress>
</body>
答案 2 :(得分:0)
您无法轻松使用AJAX调用上传文件。
你可以对它进行基础编码或以不同的方式传输它,但是有很多file upload plugins for jQuery可以帮助你。