开发者

open the save as dialogue box

I h开发者_StackOverflow社区ave a file that is in .pdf format for my website.

If you left click on the link, it will open the Adobe Reader and open the file.

What I want to do is when you left click, it opens a dialogue box that asks you where you want

to save the file.

I know you can do this by right clicking and choosing save as, but is there any way by just

one simple left click to downlaod it?


Im sure there is some sort of hack to accomplish this but this is the feature that is installed with the browser when Adobe Reader is installed on the machine. Keeping this consistent for all users is the best approach. Do not bother with trying to make the left click open a save dialog. Users are accustomed to this behavior and will know how to save the PDF to thier local hard disk

Consistency is the key here.


two parts, you have to convert the pdf to a byte stream and add a content-disposition header to the html response.

first get the file and stream to a byte array

    public byte[] GetDocument(string filePath)
    {
        return File.ReadAllBytes(filePath);
    }

Then send it - as the very first thing in the Page_Load event - you'll need to pass the path to the file through session or query string to a new page, as you can't change the content type on an existing page you have already viewed in the browser.

                    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();


Add the pdf to a zip folder and add a link to the zip folder


Remove the pdf location from the href part of your link, and code an onClick method instead.

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

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜