php - PHP"Save as…" 文件

  显示原文与译文双语对照的内容
0 0

我想允许用户从服务器下载一个特定的文件,并让他们选择文件的名称。

这是一个JSON文件。

我有下面的PHP脚本,但它是自动命名文件:


if (file_exists($myFile)){
 header ("Content-Type: application/download");
 header ("Content-Disposition: attachment; filename=$myFile");
 header("Content-Length:". filesize("$myFile"));
 $fp = fopen("$myFile","r");
 fpassthru($fp);
} else {
 echo"no file exists";
}; 

时间: 原作者:

0 0

浏览器会打开另存为对话框,这取决于 Content-Type 。 在浏览器中,用户可以指定应该打开哪个mime类型。

通常,通常为json指定mime类型 application/json - 请参见 RFC 4627

你可以尝试将类型设置为 application/octet-stream

但是我写了- 这取决于用户设置。

在 Firefox 中,可以通过以下方式修改它: https://support.mozilla.org/en-US/kb/change-firefox-behavior-when-open-file

0 0

简单更改 header ("Content-Disposition: attachment; filename=$myFile");header ("Content-Disposition: attachment; filename=$chosenFileName"); 其中,$chosenFileName 是用户提供的名称。

0 0

步骤- 1.首先单击下载按钮打开带有输入文件名的窗体( 打开弹出式或者它的他页面)

步骤 2现在给出文件( 。在文本框中输入名称,然后单击提交)的名称;

在提交请求时,第 3步将发送请求作为 post ( 方法='post') 发送到下载文件。 这看起来像 $_POST['filename'];

步骤- 4


if($_POST['filename']){
 $filename = $_POST['filename']; 
}

if (file_exists($myFile)){
 header ("Content-Type: application/download");
 header ("Content-Disposition: attachment; filename=$filename");
 header("Content-Length:". filesize("$filename"));
 $fp = fopen("$filename","r");
 fpassthru($fp);
} else {
 echo"no file exists";
}; 

我希望这对你有帮助 !

...