熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp.net顯示下載提示的下載網頁程序

2013-11-13 10:40:37  來源: .NET編程 

  網站制作經常要開發下載文件的功能下面三種下載文件的辦法
asp實現下載的代碼
<% 
filename = RequestQueryString("FileName")
if filename = "" then
    ResponseWrite "請輸入filename參數指定下載的文件名"
else
    ResponseContentType = "application/octetstream"
    ResponseAddHeader "contentdisposition" "attachment; filename =" & filename
    Set FileStream = ServerCreateObject("AdodbStream")
    FileStreamMode = 
    FileStreamType = 
    FileStreamOpen
    FileStreamLoadFromFile( ServerMapPath(filename))

    ResponseBinaryWrite( FileStreamRead )

    FileStreamClose()
    Set FileStream = nothing
end if
%>把上述代碼存成asp類型的文件使用時類似downloadasp?filename=agif
使用WebClient
在下載按鈕事件中加入如下代碼
SystemNetWebClient wc = new SystemNetWebClient();
        wcDownloadFile( " "c:agif");
上述代碼會把服務器端的agif文件在沒有任何提示的情況下下載的客戶端的c盤沒有任何提示還是比較可怕的不過有的時候確實需要這樣做該代碼也可以在桌面程序運行

aspnet顯示下載提示的下載網頁程序
//打開要下載的文件
SystemIOFileStream r = new SystemIOFileStream(FileName SystemIOFileModeOpen);
//設置基本信息
        ResponseBuffer = false;
        ResponseAddHeader("Connection" "KeepAlive");
        ResponseContentType = "application/octetstream";
        ResponseAddHeader("ContentDisposition" "attachment;filename=" + SystemIOPathGetFileName(FileName));
        ResponseAddHeader("ContentLength" rLengthToString()); 
         
        while (true)
        {
            //開辟緩沖區空間
            byte[] buffer = new byte[];
            //讀取文件的數據
            int leng = rRead(buffer  );
            if (leng == )//到文件尾結束
                break;
            if (leng == )//讀出的文件數據長度等於緩沖區長度直接將緩沖區數據寫入
                ResponseBinaryWrite(buffer);
            else
            {
                //讀出文件數據比緩沖區小重新定義緩沖區大小只用於讀取文件的最後一個數據塊
                byte[] b = new byte[leng];
                for (int i = ; i < leng; i++)
                    b[i] = buffer[i];
                ResponseBinaryWrite(b);
            }
        }
        rClose();//關閉下載文件
        ResponseEnd();//結束文件下載
該方法有下載提示框服務器端可以知道何時下載完畢


From:http://tw.wingwit.com/Article/program/net/201311/14277.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.