html:
<form id="form1" enctype="multipart/form-data" action="~/comm/inexcel.ashx?action=@ViewBag.action"> <input type="file" name="file" /> <input type="submit" value="put" /> </form>
inexcel.ashx
string action = context.Request["action"]; if (context.Request.Files["file"].ContentLength > 0) { context.Response.Write(1); } else { context.Response.Write(0); }
结果
“/”应用程序中的服务器错误。 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 源错误: 行 17: string action = context.Request["action"]; 行 18: 行 19: if (context.Request.Files["file"].ContentLength > 0) 行 20: { 行 21: context.Response.Write(1);
html:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" method="post" enctype="multipart/form-data" action="/upload.ashx?action=aa">
<input type="file" name="file"/>
<input type="submit" value="put"/>
</form>
</body>
</html>
ashx:
publicvoid ProcessRequest(HttpContext context)
{
String action = context.Request["action"];
var file = context.Request.Files["file"];
context.Response.ContentType = "text/plain";
context.Response.Write("action=" + action);
context.Response.Write(Environment.NewLine);
context.Response.Write("fileName=" + file.FileName);
}
输出:
谢谢老司机: context.Response.ContentType = "text/html"; 主要是格式错了 谢谢
给form加上method="post"
还是没有 request里面有 file,但是 request.files里面是空的
<form id="form1" method="post" runat="server" enctype="multipart/form-data" action="ServiceRobot.ashx"> <input runat="server" type="file" name="file" /> <input type="submit" value="put" /> </form>
如果你是用的Webform,就应该这么写
谢谢老司机: context.Response.ContentType = "text/html"; 主要是格式错了 谢谢