使用jqueryajax将不包含内容的文件上载到web服务
我使用jQueryAjax上传文件,但问题是上传的文件没有内容。文件上载为0Kb。这是我的密码:使用jqueryajax将不包含内容的文件上载到web服务,jquery,ajax,web-services,web,restful-url,Jquery,Ajax,Web Services,Web,Restful Url,我使用jQueryAjax上传文件,但问题是上传的文件没有内容。文件上载为0Kb。这是我的密码: <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script> <script type="text/javascript"> function uploading() { var u = docu
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
function uploading() {
var u = document.getElementById('uploadbr');
alert(u.value);
$.ajax({
type: "POST",
url: "http://10.20.1.93:8080/Service1/UploadFile?fileName="+u.value,
success: function( data )
{
alert( data );
}
});
}
</script>
</head>
<body>
<form name="uploadform" encrypt="multipart/form-data">
<input id="uploadbr" type="file" name="upfile" size="40" /><br/>
<input type="button" name="upbutton" value="Upload" onclick="uploading()" />
</form>
</body>
</html>
现在告诉我我能做什么?我错在哪里 不能使用XMLHttpRequest(AJAX)上载文件。
您可以改用此插件
此外,XHR2支持通过AJAX上传文件。例如,通过对象,但不幸的是,并非所有/旧浏览器都支持它。
问题已解决!!!但是谢谢你的回复。我的剧本错了。这是正确的
function uploading(){
var fileIn = $("#uploadbr")[0];
//Has any file been selected yet?
if (fileIn.files === undefined || fileIn.files.length == 0) {
alert("Please select a file");
return;
}
//We will upload only one file in this demo
var file = fileIn.files[0];
//Show the progress bar
$("#progressbar").show();
var u = document.getElementById('uploadbr');
alert(u.value);
$.ajax({
url: "http://10.20.1.93:8080/Service1/UploadFile?fileName="+u.value,
type: "POST",
data: file,
processData: false, //Work around #1
contentType: file.type, //Work around #2
success: function(){
$("#progressbar").hide();
},
error: function(){alert("Failed");},
//Work around #3
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',showProgress, false);
} else {
console.log("Upload progress is not supported.");
}
return myXhr;
}
});
}
从此,我可以上传几乎任何最大大小为64kb的文件。我没有使用XMLHttpRequest(AJAX)。文件正在上载,但没有其内容。使用可以简化代码。你能不能更具体地说文件没有内容就被上传了?当我选择一个文本文件来上传时,它被上传了,但没有它的内容。这意味着我有一些信息保存在一个text.txt文件中,该文件在磁盘上有一定大小,但当我上传该文件时,它被上传为空文件,其在磁盘上的大小变为0kb。
function uploading(){
var fileIn = $("#uploadbr")[0];
//Has any file been selected yet?
if (fileIn.files === undefined || fileIn.files.length == 0) {
alert("Please select a file");
return;
}
//We will upload only one file in this demo
var file = fileIn.files[0];
//Show the progress bar
$("#progressbar").show();
var u = document.getElementById('uploadbr');
alert(u.value);
$.ajax({
url: "http://10.20.1.93:8080/Service1/UploadFile?fileName="+u.value,
type: "POST",
data: file,
processData: false, //Work around #1
contentType: file.type, //Work around #2
success: function(){
$("#progressbar").hide();
},
error: function(){alert("Failed");},
//Work around #3
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',showProgress, false);
} else {
console.log("Upload progress is not supported.");
}
return myXhr;
}
});
}