2013-11-24 16 views
11

Safari'de şifrelenmiş zip yüklemelerinde küçük bir sorun yaşıyorum. Bir dosyayı zorlamak için tüm uygun başlıkları belirledim, ancak dosyanın indirilmiş Safari'si bozuk bir dosyayla sonuçlanacak şekilde sıkıştırmayı denediğinde. Okuduğum şey, Safari dosyayı güvenli olarak işaretledikten sonra açmaya çalışır.İndirilen dosyadan şifreyi iptal et

Yüklendikten sonra dosyayı açmak için Safari'yi devre dışı bırakmanın bir yolu var mı?

+0

Safari bir seçenek sunuyor "indirdikten sonra güvenli dosyaları aç" Ben bu ayarı değiştirmeden safari bunu tutmak mümkün değil düşünüyorum – matteok

+1

@Burbas: yanlış bir MIME türü dosyayı sunmayı denediniz mi? yani uygulama/zip, application/octet-stream ' –

cevap

10

: Preferences ->General -> alttaki kutuyu Open "safe" files after downloading işaretini kaldırın. .. kullanıcıya kadar kendileri bunu yapmak Ama oluyor

Eğer isterseniz, indirme sayfasında bu davranış hakkında bir uyarı görüntüleyebilir

PS:.! kaybolmayacaktır zip Safari may (isteğe bağlı) paketini açın, ancak indirilen zip hala unp yanında olacak acked klasörü.

+0

Bu cevap için teşekkür ederiz. Olsa da oldu, ama emin olmak gerekiyordu :-) – Burbas

+1

Benimle, zip dosyası silinmiş gibi görünüyor. Sadece klasör –

+0

(eski olduğunu biliyorum, ancak bir google sonucu oldu) otomatik olarak unzipping sonra zip bulamıyorsanız, çöp kutunuzu kontrol ettiğinizden emin olun. –

5
Kesinlikle

değil en zarif sürümü var ama Safari kullanıcıları için bir uyarı ile birlikte bir tarayıcı kavşak kullanarak sonuna ve indirme komut değişikliği eki ad olabilir: başlamadan önce Yani temelde

<?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> 

indirmek için, bu ek ön yükleme sayfasını, gerekli ek adını tanımlamak ve dosyayı başarılı bir şekilde indirmek için yapılması gerekenler hakkında safari kullanıcılarını bilgilendirmek üzere kurarsınız.

Bu sunucu tarafı :(

Onları indirdikten sonra arşivleri açmak için Safari'nin varsayılan davranıştır Bu Safari'de devre dışı bırakılabilir devre dışı bırakamazsınız

+0

değil, hatta Safari-dışı tarayıcılar için (header() ',' echo() 've' exit() 'kullanarak) başka bir durumda da indirmeye başlayabilirsiniz. Bu yüzden sayfa sadece Safari kullanıcıları için görüntülenecektir. – SaschaM78

+0

Cevabınız için teşekkür ederiz. Muhtemelen, Safari kullanıcılarına çirkin bir bilgi kutusu göstermesi gereken yönüm :-) – Burbas

+0

@Burbas: Bunu beğendim. Belki de bildirimi tamamen önleyin ve sadece bir takma uzantı ile kurtardınız mı? –

0
Sen vb gizlemek veya bir düğmeyi göstermek veya bir düğmeye olayı değiştirilebilir safari jQuery, kullanabilirsiniz

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 
}); 
+0

Bu soruya kesinlikle cevap vermiyor. –

1

korkarım ama sunucu tarafında bu çalışamaz .

Bunu yapamazsınız. WinZip'i veya başka bir yazılımı kullanarak indirilen dosyaları açmak ya da işaretini kaldırmak kullanıcının üstünde.

Yapabileceğimiz maksimumda, bu formatın güvenli olmadığını veya benzer satırlarda bir şey olmadığını gösteren bir uyarı/pop-up gösterebiliyoruz.