打开另存为对话框

时间:2011-05-10 20:36:31

标签: c# .net pdf

我的网站有一个.pdf格式的文件。

如果您左键单击该链接,它将打开Adobe Reader并打开该文件。

我想要做的是当你点击左键时,会打开一个对话框,询问你想要的地方

保存文件。

我知道您可以通过右键单击并选择另存为来执行此操作,  但有什么办法只是

一个简单的左键点击下载吗?

4 个答案:

答案 0 :(得分:2)

我确定有一些黑客可以实现这一目标,但这是在计算机上安装Adobe Reader时随浏览器安装的功能。保持所有用户的一致性是最好的方法。不要试图让左键单击打开保存对话框。用户习惯于此行为,并且知道如何将PDF保存到本地硬盘

一致性是关键所在。

答案 1 :(得分:1)

两部分,您必须将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();

答案 2 :(得分:0)

将pdf添加到zip文件夹并添加指向zip文件夹的链接

答案 3 :(得分:0)

从链接的href部分删除pdf位置,然后编写onClick方法。

<a href="#" onClick="$:openSaveDialog">

<script>
function openSaveDialog() {
    //Write a JavaScript function to prompt the user with a Save Dialog Box.
}
</script>