这里是一个实例
上面是一个文件上传的简单程序
用IHttpHandler接收数据
在ie和ff中都正常
但chrome就有问题了
后台接收不了数据(safari貌似也是)
到底是什么问题呢
是前台还是后台问题(估计是后台)
前台代码
<form action="File.ashx" enctype="multipart/form-data" method="post"> <input name="f" type="file" /> <input type="submit" value="开始上传"/> </form>
后台
<%@ WebHandler Language="c#" Class="File_WebHandler" Debug="true" %> using System; using System.Web; using System.IO; public class File_WebHandler : IHttpHandler { private string _msg = "上传成功!";//返回信息 public void ProcessRequest(HttpContext context) { int iTotal = context.Request.Files.Count; if (iTotal == 0) { _msg = "没有数据"; } else { HttpPostedFile file = context.Request.Files[0]; file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("./file/" + Path.GetFileName(file.FileName))); } context.Response.Write("<script>alert('" + _msg + "');</script>"); } public bool IsReusable { get { return false; } } }
应该是
<form action="File.aspx" enctype="multipart/form-data" method="post">
吧,你是不是把后缀写错了?
上传的时候用Fiddler监控下,到底有没有提交到File.ashx里去,如果有肯定在Fiddler里肯定看的到执行
不过这种方法我以前用过,小文件还可以,稍微大点文件就比较慢了, context.Request.Files.Count 稍微大点文件这里统计比较慢,