试试Request.Headers["Content-Length"]

解决方案 »

  1.   

    一样,还是要全部接受才读到,,,,,,,
    HttpWorkerRequest,,,这个好像用这个,,但不知如何用
      

  2.   

    IServiceProvider provider = (IServiceProvider) HttpContext.Current;
    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)
        {

         }
    }上面是用他的方法,不过我看不太明白,如何用他把HTTP的信息先显示出来呢?
      

  3.   

    这个不太了解,我们有同事做过:自己写一个类实现 IHttpModule 。
      

  4.   

    我知道IHttpModule,我觉得没必要用整个模块,只是想读Http头而已
      

  5.   

    用http协议就可以了,用socket或tcpclient,tcp:
    tcpclient.connect(host,port);
    NetworkStream net=tcpclient.GetNetworkStream();target="/"+文件路径;
    string send="head "+target +"http/1.1\r\nConnection: close\r\n\r\n";
    byte [] sendByte=System.Text.Encoding.ASCII.GetBytes(send);
    用net.write(sendByte,0,sendByte.Length)
    byte [] readByte=new byte[1024];
    用net.read读出来,在分析一下,
    http协议看看资料
      

  6.   

    楼主:我个人觉得不用IHttpModule没有办法在服务端提前获取 Content-Length 的,因为 ASP.NET 要在读取了所有的客户端数据后,才会构造 Page 对象,才会进入 Page_Load 事件。如果你像限制上载到服务端的附件大小,可以考虑在客户端页面上,用JavaScript在开客户端检查。
      

  7.   

    JavaScript在开客户端检查?如何开,,,肯定服务端和客户端都要断定的,那样才好.
      

  8.   

    用FileSystemObject可以判断文件长度:var fso = new ActiveXObject("Scripting.FileSystemObject");
    var file = fso.GetFile(file1.value); // file1 是 type=file 的 input 控件
    alert(file.FileSize); // 显示文件长度