Jas*_*wer 10
你无法禁用此服务器端:(
在下载后解压缩归档是Safari的默认行为.这可以在Safari中禁用:Preferences- > General- >取消选中Open "safe" files after downloading底部的框.但这取决于用户自己做到这一点.
如果您愿意,可以在下载页面上显示有关此行为的警告.
PS:拉链不会消失!Safari可以(可选)解压缩,但下载的zip仍然会在解压缩的文件夹旁边.
绝对不是最优雅的版本,但您最终可能会使用浏览器联结并让您的下载脚本更改附件名称以及Safari用户的通知:
<?php
// $attachmentId used later-on would be a passed parameter that is used
// to define attachment name
$attachmentId= $_GET['id'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent , 'Chrome') === FALSE &&
strpos($userAgent , 'Safari') !== FALSE)
{
$attachmentName= 'download.zipname';
$userNotice= 'SAFARI users: please rename the file from download.zipname to download.zip (due to Safari\'s ZIP file policy (more info))';
} else {
$attachmentName= 'download.zip';
$userNotice= '';
}
?>
<span class="notice"><?php print $userNotice; ?></span>
<a href="download.php?id=<?php print $attachmentId;?>" name="<?php print $attachmentName; ?>">Download</a>
Run Code Online (Sandbox Code Playgroud)
因此,基本上在开始下载之前,您将设置此预下载页面以定义所需的附件名称,并通知safari用户有关成功下载文件的操作.