在ie和chrome上使用jquery上传文件的问题

时间:2011-04-20 22:38:30

标签: jquery asp.net jquery-plugins upload

我有这个简单的脚本

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Button ID="btnUploadFile" runat="server" Text="Button" />
    <input id="File1" type="file" />
</asp:Content>

$(document).ready(function ()
{
    $('#file_upload').fileUpload({
        url: 'UploadHandler.ashx',
        method: 'POST'
        // autoUpload: false,
//        onLoadAll: function (list)
//        {
//            __doPostBack('MainContent_UpdatePanel1', '');
//        },

    });

    $('#File1').css({ 'position': 'absolute', 'z-index': '-100' }); //hack for chrome, in fx enough is jquery hide()

    $('#MainContent_btnUploadFile').click(function ()
    {
        $('#File1').click();
        return false;
    });
});

和http处理程序

 public class UploadHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            HttpPostedFile uploadedfile = context.Request.Files[0];
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

当我启动此代码时,在Firefox中一切正常。在http处理程序中有我上传的文件。但在chrome中我有异常,因为Request.Files没有文件。在选择文件后的Internet Explorer中,它已结束。它永远不会到达处理程序。为什么不同浏览器上的地狱会产生那么多不同的结果? jquery上传插件位于http://aquantum-demo.appspot.com/file-upload 我该怎么办? asp.net的插件页面示例在chrome上运行正常。我认为我写的方式和本例中的方式相同,但它不起作用。

1 个答案:

答案 0 :(得分:0)

根据我的经验,有些浏览器会在context.Request.Files("<filename>").InputStream发送文件 其他人将使用context.Request.InputStream

我正在使用http://valums.com/ajax-upload/作为上传控件

相关问题