【问题标题】:How to save a file from webpage by prompting save as dialog box?如何通过提示另存为对话框从网页保存文件?
【发布时间】:2014-12-03 21:35:04
【问题描述】:

在我的应用程序中,单击超链接后,应用程序会创建一个 PDF 文件并自动下载,而不提示保存文件。我需要一个Save As 对话框提示将文件保存到本地,这样我每次下载文件时都可以选择一个目录。这个你能帮我吗。谢谢。

【问题讨论】:

  • 网页无法控制。这是浏览器配置问题。查看您的浏览器选项。
  • 谢谢。但我们不能建议每个最终用户更改浏览器配置。我的要求是,每次我点击下载时,它都应该提示一个另存为对话框,这样我就可以每次选择文件夹结构并保存它。有什么方法可以实现吗?
  • @Ram 我是否正确理解了您的问题?你的问题是当前文件是自动下载到桌面什么的,而不是提示输入位置?
  • @Boann 是的,你很有礼貌。
  • @Ram 那是浏览器配置问题。您无法更改此服务器端。

标签: javascript php jquery html user-interface


【解决方案1】:

我认为这取决于浏览器是否支持,如果浏览器支持查看文件,那么你可以在浏览器中看到文件并点击保存按钮下载它,否则浏览器会提示一个对话框。

【讨论】:

  • 谢谢,我知道这取决于浏览器。但我的要求是,每次单击下载时,它都应该提示一个另存为对话框,以便我每次都可以选择文件夹结构并保存它。有什么方法可以实现吗?
  • [techcoil.com/blog/….这篇文章可能会对你有所帮助。谢谢。
【解决方案2】:

试试这个...可能对你有帮助...

<a href="pdf_server.php?file=file_path">Download</a>

pdf_server.php

<?php
header("Content-Type: application/octet-stream");

$file = $_GET["file"] .".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");            
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
    echo fread($fp, 65536);
    flush(); // this is essential for large downloads
} 
fclose($fp); 
?>

【讨论】:

  • 表示生成的pdf文件应该保存到服务器,然后文件的路径应该给href="pdf_server.php?file=file_path"。是这样吗?
  • -1。如所写,此脚本允许下载服务器上的任意文件,例如包含密码或私人数据的文件。此外,您不需要那个循环; readfile 存在。此外,如果我理解正确的话,这似乎并没有回答所提出的问题,但如果这是问题,那么无论如何它都会与许多其他问题重复。
  • @Ram 没有保存到本地磁盘,file_path 是你的 pdf 文件的路径,例如 example.com/pdf_files/pdf_file_name.pdf
  • @edcoder - 谢谢,我明白了。但是 Download 点击它会从服务器下载一个文件。但在我的情况下,生成 pdf 时它不会保存在服务器中。
  • @Ram 那你要怎么下载文件呢?没有在服务器中保存文件?
猜你喜欢
  • 2013-11-09
  • 2015-03-28
  • 2018-07-07
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
相关资源
最近更新 更多