使用jqueryajax将不包含内容的文件上载到web服务

使用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

我使用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 = 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;
        }
    });
}