首页 > 解决方案 > Safari:当我单击“另存为”时,文件名不出现

问题描述

我网站的用户可以下载文件。

例子:

<a href="download.php?path=files/videos/myvideo.avi">My Video</a>

我的问题:在 Safari 中,当用户单击“另存为”时,建议的文件名不是“myvideo.avi”,而是“download.php”。例如,Chrome 中不会出现此问题。

供下载的 PHP 代码 (download.php):

$path = $_GET['path'];
$doctype = end(explode('.', $path));
$dateiname = end(explode('/', $path));
header("Content-type: application/" . $doctype);
header("Content-disposition: attachment; filename=\"" . $dateiname . "\"");
header("Content-Length: " . filesize($path));
$fp = fopen($path, 'rb');
fpassthru($fp);

单击“另存为”时,如何在 Safari 中将“myvideo.avi”建议为文件名?

标签: phpsafari

解决方案


问题可能在于这样一个事实,即“download.php”中的脚本在页面加载时没有机会触发。我认为您需要在页面上执行一些实际的 PHP 代码才能获得正确的链接。

<a href="<?php **CODE THAT RETURNS CORRECT PATH** ?>">My Video</a>

或交替

<?php **CODE THAT GENERATES STRING OF CORRECT PATH**

echo "<a href='".$filepath."'>My Video</a>";

?>

这将保证无论使用什么浏览器,.php 脚本都会运行。


推荐阅读