मैं अपलोड की गई ज़िप फ़ाइल को निकालने और निकालने के बाद फ़ाइल को हटाने के लिए Zipper का उपयोग कर रहा हूं। तो मैं इस तरह अपलोड और निकालता हूं:

$f = $request['file']->move(public_path($directory), $fullFileName);
\Zipper::make($f)->extractTo(public_path($directory) . $fileName);

और यह बहुत अच्छा काम करता है। मैंने इन तरीकों का उपयोग करके फ़ाइल को हटाने का प्रयास किया है।

1 - Storage::disk('products')->delete($fullFileName);
2 - File::delete(public_path($directory) . $fullFileName);
3 - $del = unlink(public_path($directory) . $fullFileName);

लेकिन सभी कार्यों में संसाधन अस्थायी रूप से अनुपलब्ध त्रुटि मिलती है। मैंने पाया कि यह त्रुटि ज़िप के कारण है (सरल फाइलें और निर्देशिका काम करती है)।

तो मेरा प्रश्न है, ज़िप का उपयोग करके, मैं एक्सट्रेक्ट के बाद अपलोड ज़िप फ़ाइल को कैसे हटा सकता हूँ?

कोई विचार बहुत अच्छा होगा। अग्रिम में धन्यवाद।

2
Alireza Saremi 17 अक्टूबर 2018, 09:09

2 जवाब

सबसे बढ़िया उत्तर

इसे निकालने के बाद आपको $zipper->close(); पर कॉल करना होगा, इसलिए यदि आप ऐसा कुछ करते हैं तो इसे काम करना चाहिए:

$zipper = new \Chumper\Zipper\Zipper;
$zipper->make($f)->extractTo(public_path($directory) . $fileName);
$zipper->close();
unlink(public_path($directory) . $fullFileName);

यदि आप ज़िप को बंद नहीं करते हैं तो यह डिस्क पर परिणाम नहीं लिखेगा और मूल फ़ाइल को लॉक रखेगा। दस्तावेज़ीकरण देखें।

4
Sven Hakvoort 8 फरवरी 2019, 09:06
$zip = new Zipper;
$zip->make($pathZipFile)->extractTo($destinationPath);
$zip->close(); // important
unlink($pathZipFile); // delete Zip file after 
2
Waad Mawlood 10 फरवरी 2021, 23:01