我在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' –