我知道这个代码可以把服务器端的pdf调到客户端,谁能说一下原理吗,这个代码是c#吧,但c#好像不能对客户端编程啊,见笑啦,基础太差,多谢指教!!!FileStream MyFileStream = new FileStream(@"C:\Inetpub\wwwroot\ArcGIS\DP_ubung\Butten\pobe1.pdf", FileMode.Open);
        long FileSize;
        FileSize = MyFileStream.Length;
        byte[] Buffer = new byte[(int)FileSize];
        MyFileStream.Read(Buffer, 0, (int)MyFileStream.Length);
        MyFileStream.Close();
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;   filename=MyPDF.PDF");
        Response.BinaryWrite(Buffer);

解决方案 »

  1.   

    这段代码使用FileStream读取文件,读到buffer里
    FileStream MyFileStream = new FileStream(@"C:\Inetpub\wwwroot\ArcGIS\DP_ubung\Butten\pobe1.pdf", FileMode.Open); 
            long FileSize; 
            FileSize = MyFileStream.Length; 
            byte[] Buffer = new byte[(int)FileSize]; 
            MyFileStream.Read(Buffer, 0, (int)MyFileStream.Length); 再使用Response.BinaryWrite写回到客户端:
            Response.ContentType = "application/pdf"; 
            Response.AddHeader("content-disposition", "attachment;  filename=MyPDF.PDF"); 
            Response.BinaryWrite(Buffer);
    HttpResponse.BinaryWrite Method 
    Writes a string of binary characters to the HTTP output stream
    The following example reads a text file into a buffer and writes the buffer to the HTTP output streamFileStream MyFileStream;
     long FileSize; MyFileStream = new FileStream("sometext.txt", FileMode.Open);
     FileSize = MyFileStream.Length; byte[] Buffer = new byte[(int)FileSize];
     MyFileStream.Read(Buffer, 0, (int)FileSize);
     MyFileStream.Close(); Response.Write("<b>File Contents: </b>");
     Response.BinaryWrite(Buffer);