我在Safari中遇到了加密zip下载的小问题。我已经设置了所有适当的头文件来强制下载,但是当文件下载的Safari试图解压缩文件时会导致文件损坏。我读过它的原因是Safari将文件标记为安全,然后尝试将其打开。从解压缩下载文件中禁用Safari浏览器
有没有办法禁用Safari下载后打开文件?
我在Safari中遇到了加密zip下载的小问题。我已经设置了所有适当的头文件来强制下载,但是当文件下载的Safari试图解压缩文件时会导致文件损坏。我读过它的原因是Safari将文件标记为安全,然后尝试将其打开。从解压缩下载文件中禁用Safari浏览器
有没有办法禁用Safari下载后打开文件?
您不能禁用此服务器端:(
这是Safari浏览器的默认行为,其下载后解压档案这可以在Safari浏览器被禁用:Preferences
- >General
- >取消勾选Open "safe" files after downloading
底部。 。但是它给用户如果喜欢自己做这个
,可以显示一个关于下载页面上此行为警告
PS:!拉链是不会消失的Safari浏览器可以(可选)解压缩它,但下载的zip仍然会在unp旁边acked文件夹。
谢谢你的回复。这是我虽然,但需要确保:-) – Burbas
与我一样,zip文件似乎被删除。只有文件夹保持 –
(我知道它已经很旧了,但它是一个最好的谷歌结果) 如果你在自动解压缩后找不到.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>
所以基本上下载,您可以设置此预下载页面来定义所需的附件名称,并通知Safari用户有关如何成功下载该文件的操作。
您可以使用jQuery的,哪里是Safari浏览器,你可以隐藏或显示按钮或者改变一个按钮的事件等
if (jQuery.browser.mozilla){
// insert you code here
else if (jQuery.browser.msie){
// insert you code here
else if (jQuery.browser.safari){
// insert you code here
else if (jQuery.browser.opera){
// insert you code here
} else {
// insert you code here
});
这并没有真正回答这个问题。 –
恐怕但你不能在服务器端运行此。
你不能帮助这个。用户可以使用WinZip或其他软件检查或取消选中打开下载的文件。
在最大限度上我们可以做的是向他们显示一个警告/弹出窗口,暗示此格式的使用不安全或类似的行上的东西。
Safari浏览器有一个选项“下载后打开安全文件”我认为如果客户端不更改此设置,则无法继续使用Safari浏览器 – matteok
@Burbas:您是否尝试过为文件提供不正确的MIME类型?即不是'application/zip,application/octet-stream' –