0
我正在使用一個webgrid,並且我在其中放置了一個下載按鈕以從網格下載文件。爲什麼下載文件會拋出多重處置錯誤?
但它會拋出一個錯誤:localhost發送無效響應。 ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
[HttpGet]
public ActionResult DownloadStories()
{
string filename = "saddam.png";
string filepath = Server.MapPath("~/UploadedFiles/") + filename; //AppDomain.CurrentDomain.BaseDirectory + "/UploadedFiles/" + filename;
byte[] filedata = System.IO.File.ReadAllBytes(filepath);
string contentType = MimeMapping.GetMimeMapping(filepath);
var cd = new System.Net.Mime.ContentDisposition
{
FileName = filename,
Inline = true,
};
// Response.AppendHeader("Content-Disposition", cd.ToString());
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
return File(filedata, contentType, cd.FileName);
}
查看:
WebGrid wgImages = new WebGrid(listData, rowsPerPage: 20);
@wgImages.GetHtml(tableStyle: "table table-condensed table-bordered table-striped table-responsive",
columns: wgImages.Columns(
wgImages.Column
(columnName: "Image", header:"Image"),
wgImages.Column
(columnName:"Story", header: "Story"),
wgImages.Column
(columnName:"Image", header:"Download", format: (testItem)=> Html.ActionLink("Download", "DownloadStories", "Stories")
))
);
}
我已經試過,我現在評論和不工作過的代碼。
檢查[文檔】(https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.file(V = VS。 118).aspx#M:System.Web.Mvc.Controller.File%28System.Byte [],System.String,System.String%29):「* fileDownloadName *參數用於生成內容處置標題。 「 - 所以*你不必自己做。 –
嘗試刪除'Response.AddHeader(「Content-Disposition」,「attachment; filename = \」「+ filename +」\「」);'因爲這可能會導致重複的標題。 'cd.FileName'本身已經聲明'System.Net.Mime.ContentDisposition',它需要在客戶端的瀏覽器中發送文件。 –
@TetsuyaYamamoto確定,但現在它只在瀏覽器中打開文件不下載 –