我有一个.pdf格式的文件,用于我的网站。打开另存为对话框
如果您点击链接,它会打开Adobe Reader并打开文件。
我想做的事,当你左键点击,它会打开你想要
来保存文件,询问你的对话框是。
我知道你可以通过右击做到这一点,选择另存为, 但有什么办法由刚刚
一个简单的左键点击立即下载呢?
我有一个.pdf格式的文件,用于我的网站。打开另存为对话框
如果您点击链接,它会打开Adobe Reader并打开文件。
我想做的事,当你左键点击,它会打开你想要
来保存文件,询问你的对话框是。
我知道你可以通过右击做到这一点,选择另存为, 但有什么办法由刚刚
一个简单的左键点击立即下载呢?
我确定有一些破解可以实现这一点,但这是在计算机上安装Adobe Reader时与浏览器一起安装的功能。保持所有用户的一致性是最好的方法。不要打扰尝试使左键单击打开保存对话框。用户习惯了这种行为并知道如何将PDF保存到本地硬盘
一致性是关键。
的PDF添加到压缩文件夹,然后将链接添加到Zip文件夹
从你的链接的href部分删除PDF的位置,和代码一个onClick方法来代替。
<a href="#" onClick="$:openSaveDialog">
<script>
function openSaveDialog() {
//Write a JavaScript function to prompt the user with a Save Dialog Box.
}
</script>
两部分,您必须将pdf转换为字节流,并向html响应添加内容处置标头。
第一个获得文件和流的字节数组
public byte[] GetDocument(string filePath)
{
return File.ReadAllBytes(filePath);
}
然后把它 - 在Page_Load事件的第一件事 - 你需要通过会议或查询传递文件路径字符串添加到新页面,因为您无法更改已在浏览器中查看的现有页面上的内容类型。
Byte[] fileData = GetDocument(filePath);
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";
// prompt to download
Response.AppendHeader("content-disposition", "attachment; filename=declarations.pdf");
Response.AppendHeader("content-length", fileData.Length.ToString());
Response.BinaryWrite(fileData);
Response.Flush();
Response.Close();