<form id="form1" name="form1" action="DefaultAction.aspx" method="post" enctype="multipart/form-data">
<div>
<input type="file" name="file1" id="f1" />
<input type="submit" value="submit" />
</div>
</form>
//DefaultAction.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{ IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest wr = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
string addr = wr.GetLocalAddress();
Response.Write(String.Format("NiC Address:{0}<BR>", addr));
byte[] bs = wr.GetPreloadedEntityBody();
String s = "";
if (bs != null && bs.Length > 0)
s = System.Text.Encoding.Default.GetString(bs);
Response.Write(s + "<BR>");
if (!wr.IsEntireEntityBodyIsPreloaded())
{
Response.Write("normally shouldn't be here");
int n = 1024;
byte[] bs2 = new byte[n];
while (wr.ReadEntityBody(bs2, n) > 0)
{
s = System.Text.Encoding.Default.GetString(bs2);
Response.Write(s + "<BR>");
}
} }为什么调用wr.ReadEntityBody(bs2, n)方法就卡住了。
<httpRuntime maxRequestLength="111000" useFullyQualifiedRedirectUrl="true" executionTimeout="300"/>maxRequestLength属性表示最大传多少大小的文件,以KB为单位.
http://download.csdn.net/source/1377761
http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx
HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
byte[] bs = wr.GetPreloadedEntityBody();if (!wr.IsEntireEntityBodyIsPreloaded())
{
int n = 1024;
byte[] bs2 = new byte[n];
while (wr.ReadEntityBody(bs2,n) >0)
{}
}
<httpRuntime
executionTimeout="300"
maxRequestLength="40960"
useFullyQualifiedRedirectUrl="false"/>
最好用个第三方控件 这个很消耗iis资源的