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タイプ テキストファイル.csvCSVファイルtext/comma-separated-values.tsvTSVファイルtext/tab-separated-values.txtテキストファイルtext/plain.xmlXMLファイルtext/xml ドキュメントファイル.doc、.docxMicrosoft Wordapplication/msword.xls、.xlsxMicrosoft Excelapplication/msexcel.ppt、.pptxMicrosoft PowerPointapplication/mspowerpoint.pdfPDF ファイルapplication/pdf 画像ファイル.bmpビットマップファイルimage/bmp.gifGIFファイルimage/gif.jpgJPEGファイルimage/jpeg.pngPNGファイルimage/png その他のファイル.zipZIPファイルapplication/zip.lzhLZHファイルapplication/lha.cssスタイルシートファイルtext/css.jsJavaScriptファイルtext/javascript.vbsVBScriptファイルtext/vbscript.exe実行ファイルapplication/octet-stream
