2011-03-24 10 views
7

पर छवि नहीं जोड़ता है, मैं थोड़ी देर के लिए इस पर रहा हूं। यह वास्तव में एक बार काम किया, फिर कभी नहीं। यह बस ज़िप फ़ाइल नहीं बनाता है। फाइल मौजूद है।zipArchive addFile() का उपयोग करके ज़िप

$zip = new ZipArchive(); 
$filename = "./test" . time() .".zip"; 

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {  
    exit("cannot open <$filename>\n"); 
} 

$thisdir = "$_SERVER[DOCUMENT_ROOT]/zip"; 
$zip->addFile($thisdir . "/trash-icon.png", "/gabage.png"); 
echo "numfiles: " . $zip->numFiles . "\n"; 
echo "status:" . $zip->status . "\n"; 
$zip->close(); 

मैं की तरह

$zip->addFromString("testfilephp.txt", "#1 This is a test string added as testfilephp.txt.\n"); 

उसमें txt फ़ाइल के साथ जिप बनाता है कुछ जोड़ते हैं .. लेकिन मौजूदा फ़ाइल के anytype के लिए एक नहीं जाने।

+0

'/ trash-icon.png' लगभग निश्चित रूप से गलत है, क्योंकि यह सर्वर की मूल निर्देशिका को इंगित करता है। क्या आप 100% निश्चित रूप से उन फ़ाइलों को सुनिश्चित करते हैं जिन्हें आप वास्तव में जोड़ने की कोशिश कर रहे हैं? –

+0

क्या आप निश्चित हैं कि /trash-icon.png वास्तव में मौजूद है, याद रखना कि यह फाइल सिस्टम रूट निर्देशिका –

+0

http://www.php.net/manual/de/function.ziparchive-addfile.php#101605 – mario

उत्तर

0

ZipArchive::addFile() विधि फ़ाइल के पथ को इसके पहले पैरामीटर के रूप में स्वीकार करती है।


यहाँ, आप उपयोग कर रहे हैं:

$zip->addFile("/trash-icon.png", "/gabage.png"); 

इसका मतलब है आप अपने संग्रह करने के लिए /trash-icon.png फ़ाइल जोड़ने की कोशिश कर रहे हैं।


क्या आप वाकई यह फ़ाइल मौजूद हैं?

नोट उस फ़ाइल के पथ की शुरुआत में / है, जो इंगित करता है कि यह एक पूर्ण पथ है।
शायद सापेक्ष पथ का उपयोग करने के लिए / हटाया जाना चाहिए?

+0

क्षमा करें यह मैंने कोशिश की कई पुनरावृत्तियों में से एक का एक बुरा उदाहरण था। कोड – Vance

10

ZipArchive :: addFile() विधि फ़ाइल के पथ को इसके पहले पैरामीटर के रूप में स्वीकार करती है, लेकिन सभी पथ बराबर नहीं बनाए जाते हैं। addFile() विधि चुपचाप फ़ाइल को अस्वीकार करती है और आप कभी नहीं जानते कि क्या गलत हुआ। सवाल से प्राप्त किया जा सकता है के रूप में, एक वैकल्पिक दृष्टिकोण होगा:

// $zip->addFile($file); 
$content = file_get_contents($file); 
$zip->addFromString(pathinfo ($file, PATHINFO_BASENAME), $content); 

() काम कर रहे, file_get_contents कोड भी सभ्य त्रुटि संदेश उत्पन्न करता है प्राप्त करने के अलावा।

+0

अपडेट किया गया है यह मेरे लिए काम करता है और मुझे पागल होने से बचाता है! –

+0

चालाक कामकाज! मुझे इस तरह मेरी त्रुटि मिल सकती है। मुझे पागल होने से भी बचाया गया था! – dsnunez

+0

कामकाज के लिए धन्यवाद। भले ही फ़ाइल is_readable फ़ाइल जोड़ें विफल। –

0

इस प्रश्न का उत्तर देखें - यह छवियों के लिए भी काम करता है, और addFromString के बजाय addFile का उपयोग करता है, जहां तक ​​मुझे पता है स्मृति उपयोग में हल्का है।

0

मेरे पास इसी प्रकार की समस्या थी और यह उस फ़ाइल से संबंधित था जिसे मैं ज़िप संग्रह में जोड़ने जा रहा था।

ज़िप संग्रह में फ़ाइल जोड़ने से पहले, यह जांचना हमेशा बेहतर होता है कि फ़ाइल मौजूद है या नहीं।

$thisdir = "$_SERVER[DOCUMENT_ROOT]/zip"; 
if (file_exists($thisdir . "/trash-icon.png")) { 
    $zip->addFile($thisdir . "/trash-icon.png", "/gabage.png"); 
} 
संबंधित मुद्दे