2013-11-24 4 views
11

Ich habe ein kleines Problem mit verschlüsselten Zip-Downloads in Safari. Ich habe alle passenden Header gesetzt, um einen Download zu erzwingen, aber wenn die heruntergeladene Safari der Datei versucht, sie zu entpacken, führt dies zu einer beschädigten Datei. Was ich gelesen habe ist, weil Safari die Datei als sicher markiert und dann versucht, sie zu öffnen.Safari deaktivieren, entzippen heruntergeladene Datei

Gibt es eine Möglichkeit, Safari zu deaktivieren, um die Datei nach dem Herunterladen zu öffnen?

+0

Safari hat eine Option "sichere Dateien nach dem Download öffnen" Ich denke, es ist nicht möglich, Safari davon abzuhalten, ohne dass der Client diese Einstellung ändert – matteok

+1

@Burbas: Haben Sie versucht, die Datei mit einem falschen MIME-Typ zu versorgen? dh nicht "application/zip, application/octet-stream" –

Antwort

10

Sie nicht auf diese Server-Seite deaktivieren :(

Es ist Safari Standardverhalten Archive nach dem Herunterladen, sie zu entpacken und in Safari deaktiviert werden kann: Preferences ->General -> die Box Open "safe" files after downloading am unteren Uncheck. .. Aber es Benutzern ist auf sich, dies zu tun

Wenn Sie möchten, können Sie eine Warnung über dieses Verhalten auf die Download-Seite anzuzeigen

PS:.! der Reißverschluss wird nicht verschwinden Safari kann (optional) entpacken Sie es, aber die heruntergeladene zip wird immer noch neben dem unp geackter Ordner

+0

Vielen Dank für diese Antwort. Es war wie ich dachte, musste aber sicher sein :-) – Burbas

+1

Bei mir scheint die Zip-Datei gelöscht zu sein. Nur der Ordner bleibt –

+0

(Ich weiß, es ist alt, aber es war ein Top-Google-Ergebnis) Wenn Sie die .zip nach dem automatischen Entpacken nicht finden können, achten Sie darauf, Ihren Papierkorb zu überprüfen. –

5

Auf jeden Fall nicht die eleganteste Version gibt es, aber Sie können mit einem Browser-Übergang am Ende und die Download-Skript ändern Namen der Anlage mit einer Bekanntmachung für Safari-Benutzer in Kombination haben:

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

Also im Grunde vor dem Start Download, würden Sie diese Vor-Download-Seite einrichten, um den erforderlichen Anhangnamen zu definieren und Safari-Benutzer darüber zu informieren, was zu tun ist, um die Datei erfolgreich herunterzuladen.

+0

Sie können den Download auch im else-case für Nicht-Safari-Browser starten (mit 'header()', 'echo()' und 'exit()') Die Seite wird also nur für Safari-Benutzer angezeigt. – SaschaM78

+0

Vielen Dank für Ihre Antwort. Es ist wahrscheinlich die Richtung, die ich nehmen muss, um Safari-Benutzern eine hässliche Info-Box zu zeigen :-) – Burbas

+0

@Burbas: Ich mag das. Vielleicht auf den Hinweis ganz verzichten und nur mit einer Alias-Erweiterung speichern? –

0

Sie können mit jQuery, wo Safari können Sie verstecken oder einen Knopf sichtbar machen oder die Veranstaltung von einer Taste ändern, usw.

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

Dies beantwortet die Frage überhaupt nicht wirklich. –

1

Ich fürchte, Sie können dies aber nicht auf der Server-Seite arbeiten .

Sie können nicht helfen. Es liegt am Benutzer zu überprüfen oder zu deaktivieren, um die heruntergeladenen Dateien mit WinZip oder einer anderen Software zu öffnen.

Im Maximum können wir tun, ist ihnen ein Alarm/Popup zeigen, die Verwendung dieses Formats ist nicht sicher oder etwas auf der gleichen Linie.

Verwandte Themen