在 controller 中我們可以使用 fileresult 向客戶端傳送檔案。
fileresult 是乙個抽象類,繼承自 actionresult。在 system.web.mvc.dll 中,它有如上三個子類,分別以不同的方式向客戶端傳送檔案。
在實際使用中我們通常不需要直接例項化乙個 fileresult 的子類,因為 controller 類已經提供了六個 file 方法來簡化我們的操作:
protected internal filepathresult file(string filename, string contenttype);filepathresult 直接將磁碟上的檔案傳送至瀏覽器:protected internal virtual filepathresult file(string filename, string contenttype, string filedownloadname);
protected internal filecontentresult file(byte filecontents, string contenttype);
protected internal virtual filecontentresult file(byte filecontents, string contenttype, string filedownloadname);
protected internal filestreamresult file(stream filestream, string contenttype);
protected internal virtual filestreamresult file(stream filestream, string contenttype, string filedownloadname);
1. 最簡單的方式
public actionresult filepathdownload1()第乙個引數指定檔案路徑,第二個引數指定檔案的 mime 型別。
2. 指定 filedownloadname
filepathdownload2 沒問題,filepathdownload3 還是預設為了 action 的名字。原因是 filedownloadname 將作為 url 的一部分,只能包含 ascii 碼。我們把 filepathdownload3 改進一下:
3. 對 filedownloadname 進行 url 編碼
好了,沒問題了。上面**中 url.encode(…),也可使用 httputility.urlencode(…),前者在內部呼叫後者。
我們再來看 filecontentresult.
想給 filestreamresult 找乙個恰當的例子是不太容易的,畢竟 http response 中已經包含了乙個輸出流,如果要動態生成檔案的話,可以直接向這個輸出流中寫入資料,效率還高。當然,我們不會在 controller 中直接向 response 的 outputstream 寫入資料,這樣做是不符合mvc的,我們應該把這個操作封裝成乙個 actionresult。
不過仔細想想,用途還是有的,比如伺服器上有個壓縮(或加密)檔案,需要解壓(或解密)後傳送給使用者。
1. 解壓(或解密)
演示**如下,解壓使用 icsharpcode.sharpziplib.dll:
public actionresult filestreamdownload1()簡單起見,假定壓縮檔案中只有乙個檔案,且是 pdf 格式的。鶴沖天.zip 如下:
2. **(或盜鏈)
public actionresult filestreamdownload1()看下面提示視窗,**還是 localhost:
匯出替換Word模板中的內容
if filepath.tostring tolowercase endswith docx runtext oneparastring for map.entryentry hmocrgkeytovalue.entryset else 網上有很多先移除runs在新增,這種做法模板裡面的樣式會消失,...
匯出ADF Table內容到Excel
1 建立adf應用,基於hr schema中的departments表建立entity object,view object 3 建立頁面,從data control面板拖動該view object的例項到頁面中,以table形式進行資料展現,並進行布局,在table外新增一層panel colle...
附加內容到檔案
如果你要給檔案新增內容,而不是覆蓋原有的內容,可以附加模式開啟檔案。你以附加模式 開啟檔案時,python不會在返回檔案物件前清空檔案,而你寫入到檔案的行都將新增到檔案末尾。如果指定的檔案不存在,python將為你建立乙個空檔案。filename programming1.txt with open...