ASP.NET中的Ajax Fileupload卡住了

时间:2013-09-05 06:47:29

标签: jquery asp.net ajax jquery-file-upload

我在我的ASP.NET网站上使用基于Ajax的Fileupload来上传包含进度的大文件并启用多文件uplaod。代码看起来像这样

的JavaScript

    <script type="text/javascript">
    var ufiles;

    $(document).ready(function () {
        $("#fufile").change(function () {
            if (this.files.length > 0) {
                fupl(0);
            }
        });
    });

    function fupl(index) {
        currcount = index + 1;
        if (ufiles != null && ufiles.length > index) {
            var formData = new FormData();
            if (ufiles[index].size > 200000000) {     
                fupl(index + 1);
            }
            else {
                formData.append("file", ufiles[index]);
                $.ajax({
                    url: window.location.pathname,
                    type: 'POST',
                    xhr: function () {                            
                        myXhr = $.ajaxSettings.xhr();
                        if (myXhr.upload) {
                            myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
                        }
                        return myXhr;
                    },
                    success: function (data) {
                        fupl(index + 1);
                    },
                    error: function (xhr, ajaxOptions, thrownError) {                                     
                    },
                    data: formData,
                    cache: false,
                    contentType: false,
                    processData: false
                });
            }
        }
    };
    function progressHandlingFunction(e) {
        if (e.lengthComputable) {               
        }
    }       
</script>

我还尝试了一个JavaScript代码,它在没有formdata的情况下迭代输入控件中的文件,但是我得到了相同的结果 - 当你点击上传按钮时,有时它会起作用,有时上传会挂起像进步2-3%。我已尝试在不同的IIS服务器,不同的代码但我没有得到可靠的文件上传。有什么建议吗?

只是为了完整起见 C#

protected void Page_Load(object sender, EventArgs e)
{     
try 
    {      
        if (HttpContext.Current.Request.Files.Count > 0)
        {
        Request.Files[0].SaveAs( Foopath + Files[0].FileName);
        Response.Write(true);
        }
    }
    catch
    {
        Response.Write(false);
    }
}

0 个答案:

没有答案