http://www.projectgroup.info/tips/Microsoft.NET/aspx_0005.html
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Function GetDownLoad() As ActionResult
FileDownload("C:\testdata\bb.csv", "text/comma-separated-values")
'画面操作した後、本画面を表示する
Return View()
End Function
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
’’’ <summary>
’’’ ファイルをダウンロードさせます。
’’’ </summary>
’’’ <param name="FilePath">ダウンロードするファイル名を指定します。</param>
’’’ <param name="MimeType">ダウンロードするファイルのMIMEタイプを指定します。</param>
Public Sub FileDownload(FilePath As String, MimeType As String)
'相対パスから物理ファイルパス取得
'Dim FilePath As String = FilePath 'MapPath(String.Format("./pdf/{0}", FileName))
'ダウンロードするファイル名
Dim dlFileName As String
'ファイル名が日本語の場合を考慮したダウンロードファイル名を作成
If Request.Browser.Browser = "IE" Then
'IEの場合はファイル名をURLエンコード
dlFileName = HttpUtility.UrlEncode("テストカナファイル.csv")
Else
'IE以外の場合はそのままでOK
dlFileName = HttpUtility.UrlEncode("テストカナファイル.csv") 'FileName
End If
'ダウンロード処理
'Response情報クリア
Response.ClearContent()
'バッファリング
Response.Buffer = True
'HTTPヘッダー情報・MIMEタイプ設定
Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", dlFileName))
Response.ContentType = MimeType
'ファイルを書き出し
Response.WriteFile(FilePath)
Response.Flush()
Response.End()
End Sub
MimeType パラメータ説明:
-
上記の例ではpdfファイルですがMIMEタイプを変更すると他のファイルも同様にダウンロードできます。
MIMEタイプの一例です。
拡張子 ファイル MIMEタイプ テキストファイル .csv CSVファイル text/comma-separated-values .tsv TSVファイル text/tab-separated-values .txt テキストファイル text/plain .xml XMLファイル text/xml ドキュメントファイル .doc、.docx Microsoft Word application/msword .xls、.xlsx Microsoft Excel application/msexcel .ppt、.pptx Microsoft PowerPoint application/mspowerpoint .pdf PDF ファイル application/pdf 画像ファイル .bmp ビットマップファイル image/bmp .gif GIFファイル image/gif .jpg JPEGファイル image/jpeg .png PNGファイル image/png その他のファイル .zip ZIPファイル application/zip .lzh LZHファイル application/lha .css スタイルシートファイル text/css .js JavaScriptファイル text/javascript .vbs VBScriptファイル text/vbscript .exe 実行ファイル application/octet-stream