view:
$(function () {
$("#DownloadAttachment").click(function () {
$.ajax(
{
url: '@Url.Action("DownloadAttachment", "PostDetail")',
contentType: 'application/json; charset=utf-8',
datatype: 'json',
data: {
studentId: 123
},
type: "GET",
success: function () {
window.location = '@Url.Action("DownloadAttachment", "PostDetail", new { studentId = 123 })';
}
});
});
});
contoller:
自己修改的方法
Public Function DownFile() As FileStreamResult
Dim filePath As String = "C:\TEMP\bbb.txt"
Dim fileName As String = "お願い.txt"
Dim absoluFilePath As String = filePath 'Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] + filePath)
Return File(New System.IO.FileStream(absoluFilePath, System.IO.FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName))
End Function
网上的方法
public ActionResult DownloadAttachment(int studentId) { // Find user by passed id // Student student = db.Students.FirstOrDefault(s => s.Id == studentId); var file = db.EmailAttachmentReceived.FirstOrDefault(x => x.LisaId == studentId); byte[] fileBytes = System.IO.File.ReadAllBytes(file.Filepath); return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, file.Filename); }
http://stackoverflow.com/questions/30704078/how-to-download-a-file-through-ajax-request-in-asp-net-mvc-4
//ファイル出力ボタン
$("#btnDownLoadFild").click(function () {
$.ajax({
data : "",
type : "POST",
url : '@Url.Action("CheckExistDownLoadFile", "controllerName")',
success: function (retVal) {
if (retVal == "Exist") {
$.ajax({
url : '@Url.Action("DownloadFile", "controllerName")',
contentType: 'application/json; charset=utf-8',
datatype : 'json',
type : "GET",
success : function () {
window.location = '@Url.Action("DownloadFile", "controllerName")';
},
error : function () {
//ダウンロード時、エラーが発生しました。
}
});
} else {
//ダウンロードファイルが存在していない
}
}
});
});
------------------------
''' <summary>
''' ファイルダウンロード処理
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function DownloadFile() As FileStreamResult
Dim fileName As String = "xxxx.csv"
Dim filePath As String = "xxx\xxx\" & fileName
Return File(New System.IO.FileStream(filePath, System.IO.FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName))
End Function