最近在專案上遇到一個很老梗的問題
「為什麼檔案可以打網址變更檔名就可以下載!!你想要我鬧未來治國週記的笑話嗎!!」客戶問
『(默).....』
內部網站做久了,的確很容易忽略變更網址就可以下載檔案的問題。
先看一下需要的成果吧!
1.當滑鼠移到下載連結後,左下角的狀態列也不會出現相關網址。
2.需要能下載Word、Excel、PowerPoint、PDF四種類型的檔案
接下來就是畫面設計!
因為剛好需要使用的樣式是超連結,所以我是透過LinkButton來達到這種效果~
既然是Button,當然就是寫他的Click事件囉~內容如下
至於DownLoadFile這個Function,就是透過Response的效果將檔案輸出至頁面上
private void DownLoadFile(string parFilePath) if (FilePath.Split('\\').Length != 0) //中文檔名作轉換 FileStream fr = new FileStream(FilePath, FileMode.Open); fr.Read(buf, 0, Convert.ToInt32(fr.Length)); Response.Clear(); Response.BinaryWrite(buf); |
這樣就可以下載檔案了
附帶一提,這種作法的目錄須要授權ASPNET(Network Service)的帳戶「寫入」的權限才不會發生錯誤~
不曉得還有沒有其他破綻了,如果要我硬猜的話,太大的檔案也許有可能有問題。
分享給開發人員參考囉~
留言列表