我有这个简单的脚本
<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上运行正常。我认为我写的方式和本例中的方式相同,但它不起作用。
答案 0 :(得分:0)
根据我的经验,有些浏览器会在context.Request.Files("<filename>").InputStream
发送文件
其他人将使用context.Request.InputStream
我正在使用http://valums.com/ajax-upload/作为上传控件