如何显示“另存为”对话框,用于在PHP中保存文件之前,在写入模式下选择文件



在我的php代码中,我从mySQL数据库中检索行,并将它们保存到CSV文件中。我正在用代码硬编码文件名。算法简单如下:

1. Allow user select excel file.
2. Retrieve rows from table, separate column data with commas and build up strings through concatenation.
3. put the build up into the selected file.
4. Close the file.

但是,我希望在将构建的CSV字符串保存到文件中之前,显示一个"另存为"对话框,供用户选择文件。我看到的建议都是关于让它看起来像下载,但在下载中,文件在用户保存到本地机器之前就已经建立好了。在我的情况下,必须首先选择文件。

如果应用程序从主分区标记为C:的机器移动到标记为D:的机器,我还希望它是可移植的,所以我不需要硬编码。谢谢

要让浏览器下载文件(而不是在已知MIME类型时打开它),可以设置以下标题:

  • Content-disposition: attachment; filename=fname.ext

我不认为有任何方法可以强制浏览器使用"另存为"对话框进行提示。每个浏览器处理此问题的方式不同,通常是本地用户设置。(即自动下载到默认文件夹,每次提示等)

或者,当用户需要明确指定下载文件的位置和名称时,可以建议他们使用"右键单击->另存为…"。

最新更新