2013-11-24 7 views
11

मुझे सफारी में एन्क्रिप्टेड ज़िप डाउनलोड के साथ एक छोटी सी समस्या है। मैंने डाउनलोड करने के लिए सभी उचित शीर्षलेख सेट किए हैं, लेकिन जब फ़ाइल की डाउनलोड सफारी इसे अनजिप करने का प्रयास करती है जिसके परिणामस्वरूप दूषित फ़ाइल होती है। मैंने इसे पढ़ा है क्योंकि सफारी फ़ाइल को सुरक्षित के रूप में फ़्लैग करता है और फिर इसे खोलने का प्रयास करता है।डाउनलोड फ़ाइल को अनजिप से सफारी अक्षम करें

क्या सफारी को डाउनलोड करने के बाद फ़ाइल को खोलने से अक्षम करने का कोई तरीका है?

+0

सफारी का विकल्प होता है "डाउनलोड करने के बाद सुरक्षित फ़ाइलों को खोलने के" मुझे लगता है कि ग्राहक को बदले बिना ऐसा करने से सफारी रखने के लिए संभव नहीं है इस – matteok

+1

@Burbas की स्थापना: यदि आप फ़ाइल में गलत MIME प्रकार की सेवा की कोशिश की? यानी 'एप्लिकेशन/ज़िप, एप्लिकेशन/ऑक्टेट-स्ट्रीम' –

उत्तर

10

आप इस सर्वर साइड :(

यह उन्हें डाउनलोड करने के बाद अभिलेखागार अनपैक करने के लिए सफारी का डिफ़ॉल्ट व्यवहार है यह सफारी में निष्क्रिय किया जा सकता निष्क्रिय नहीं कर सकते: Preferences ->General - नीचे दिए गए बॉक्स Open "safe" files after downloading अनचेक करें>। ।। उपयोगकर्ताओं को खुद को ऐसा करने के लिए लेकिन यह है

आप चाहें, तो आप डाउनलोड पृष्ठ पर इस व्यवहार के बारे में एक चेतावनी प्रदर्शित कर सकते हैं

पुनश्च:।! ज़िप गायब नहीं होगा सफारी मई (वैकल्पिक) इसे अनपैक करें, लेकिन डाउनलोड किया गया ज़िप अभी भी अनप के बगल में होगा नक़्क़ाशीदार फ़ोल्डर

+0

इस उत्तर के लिए धन्यवाद। हालांकि मैं ऐसा था, लेकिन यह सुनिश्चित करने की आवश्यकता थी :-) – Burbas

+1

मेरे साथ, ज़िप-फ़ाइल को हटाया जाना प्रतीत होता है। केवल फ़ोल्डर –

+0

रहता है (मुझे पता है कि यह पुराना है, लेकिन यह एक शीर्ष Google परिणाम था) यदि आप स्वचालित अनजिपिंग के बाद .zip नहीं पा रहे हैं, तो अपने कचरे को जांचना सुनिश्चित करें। –

5

निश्चित रूप से नहीं सबसे खूबसूरत संस्करण है, लेकिन आप एक ब्राउज़र जंक्शन का उपयोग कर संयोजन में सफारी उपयोगकर्ताओं के लिए एक नोटिस के साथ समाप्त करने और अपने डाउनलोड स्क्रिप्ट परिवर्तन लगाव नाम हो सकता है:

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

तो बुनियादी तौर पर शुरू करने से पहले डाउनलोड करें, आप आवश्यक अनुलग्नक नाम को परिभाषित करने के लिए इस प्री-डाउनलोड पेज को सेट अप करेंगे और सफारी उपयोगकर्ताओं को सूचित करेंगे कि फ़ाइल को सफलतापूर्वक डाउनलोड करने के लिए क्या किया जाना है।

+0

नहीं, आप गैर-सफारी ब्राउज़रों के लिए अन्य मामले में भी डाउनलोड शुरू कर सकते हैं ('हेडर()', 'echo() 'और' exit() ') का उपयोग करके तो पृष्ठ केवल सफारी उपयोगकर्ताओं के लिए प्रदर्शित किया जाएगा। – SaschaM78

+0

आपके उत्तर के लिए धन्यवाद। यह संभवतः मुझे जिस दिशा में लेने की आवश्यकता है, सफारी-उपयोगकर्ताओं को बदसूरत जानकारी-बॉक्स दिखा रहा है :-) – Burbas

+0

@ बरबास: मुझे यह पसंद है। शायद नोटिस पूरी तरह से पूर्ववत करें और बस इसे उपनाम एक्सटेंशन से बचाया है? –

0

आप jQuery, जहां सफारी आप को छिपाने या एक बटन को सामने लाने या एक बटन की स्थिति बदल सकते हैं, आदि का उपयोग कर सकते

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

यह वास्तव में प्रश्न का उत्तर नहीं देता है। –

1

मुझे डर लग रहा है, लेकिन आप सर्वर साइड पर यह काम नहीं कर सकता ।

आप इसकी सहायता नहीं कर सकते। यह WinZip या किसी अन्य सॉफ़्टवेयर का उपयोग करके डाउनलोड की गई फ़ाइलों को खोलने के लिए उपयोगकर्ता पर जांच या अनचेक करने के लिए है।

अधिकतम पर हम उन्हें एक चेतावनी/पॉपअप दिखा सकते हैं कि इस प्रारूप का उपयोग सुरक्षित नहीं है या इसी तरह की रेखा पर कुछ है।

संबंधित मुद्दे