ajax得到这个pdf的路径后怎么让浏览器下载?
现在的写法是:window.open(pdfUrl);然后浏览器会直接打开这个文件,
请教如何让其下载?
8 个解决方案
#1
string path = Server.MapPath(你的PDF路径);
FileInfo fi = new FileInfo(path);
if (fi.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fi.Name));
Response.WriteFile(fi.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
FileInfo fi = new FileInfo(path);
if (fi.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fi.Name));
Response.WriteFile(fi.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
#2
string FileName = ".pdf";
FullFileName = Server.MapPath(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();
}
#3
楼上正解00000
#4
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
再说,[WebMethod]貌似不能使用你们说的这种方式。
#5
你试一下直接在浏览器地址栏输入http://222.22.22.2/a.pdf会不会提醒你下载
#6
会直接打开,现在的浏览器都支持pdf的浏览了,还能进行相关的操作
#7
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
你试一下直接在浏览器地址栏输入http://222.22.22.2/a.pdf会不会提醒你下载
会直接打开,现在的浏览器都支持pdf的浏览了,还能进行相关的操作
要改ContentType,告诉浏览器用下载而不用预览
#8
算了,我还是用服务器的方式吧!
#1
string path = Server.MapPath(你的PDF路径);
FileInfo fi = new FileInfo(path);
if (fi.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fi.Name));
Response.WriteFile(fi.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
FileInfo fi = new FileInfo(path);
if (fi.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.AddHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fi.Name));
Response.WriteFile(fi.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
#2
string FileName = ".pdf";
FullFileName = Server.MapPath(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();
}
#3
楼上正解00000
#4
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
再说,[WebMethod]貌似不能使用你们说的这种方式。
#5
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
你试一下直接在浏览器地址栏输入http://222.22.22.2/a.pdf会不会提醒你下载
#6
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
你试一下直接在浏览器地址栏输入http://222.22.22.2/a.pdf会不会提醒你下载
会直接打开,现在的浏览器都支持pdf的浏览了,还能进行相关的操作
#7
先谢谢楼上的两位,我问的是在前台有没有办法实现!
再说,[WebMethod]貌似不能使用你们说的这种方式。
你试一下直接在浏览器地址栏输入http://222.22.22.2/a.pdf会不会提醒你下载
会直接打开,现在的浏览器都支持pdf的浏览了,还能进行相关的操作
要改ContentType,告诉浏览器用下载而不用预览
#8
算了,我还是用服务器的方式吧!