0
我有一個DataGrid,我有一個LinkButton。 LinkButton將顯示一個文件名,並設置它的 CommadName和CommandArgument,以便RowCommandFire(...)事件在單擊該按鈕時觸發。目的是下載由LinkButton鏈接的文件。 但是,在運行時 - 我正在下載頁面名稱(如filesViewPage.aspx),而不是請求下載的實際文件。我有以下代碼 - 但它不是應該下載文件。我已確保文件擴展名爲「。*」的IIS 7 MIME類型條目「application/octet-stream」存在。ASP.Net返回頁面而不是請求下載的文件
缺少什麼。請幫助...
protected void RowCommandFire(object sender, GridViewCommandEventArgs e) {
if (e.CommandName == "DownloadFile")
{
try {
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
FileInfo fileToDownload = new FileInfo(Server.MapPath("~/Uploads/") + e.CommandArgument);
//byte[] bytes = File.ReadAllBytes(fileToDownload.FullName);
if (fileToDownload.Exists) {
string filename = e.CommandArgument.ToString();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("content-disposition", "attachment; filename=" + filename);
Response.AppendHeader("content-length", fileToDownload.Length.ToString());
Response.TransmitFile(fileToDownload.FullName);
//Response.WriteFile(fileToDownload.FullName);
//Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
} catch (Exception ex) {
msg.Text = ex.Message;
}
}
告訴我,如果我的解決方案幫助您! – mybirthname