看了好多種方法
好像都是通過Response轉換來的
Code
public void Open()
{
string FullFileName = "";
//ASP.NET下載檔案(彈出開啟儲存檔案對話方塊)
//fileURL為帶路徑的檔案全名
/*
string fileURL = url;
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL);
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename="+Server.UrlEncode(fileInfo.Name.ToString()));
Response.AddHeader("content-length",fileInfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.WriteFile(fileURL);
*/
//無錯版:
try
{
string FileName = ".//路徑//書名.pdf";
FileName = ".//路徑//檔案名稱.副檔名";
FullFileName = Server.MapPath(FileName);
//FileName--要下載的檔案名稱
FileInfo DownloadFile = new FileInfo(FullFileName);
if (DownloadFile.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.ASCII));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
else
{
//檔案不存在
}
}
catch
{
//開啟時異常了
}
}