2010-11-12 15 views
17

मैं ज़िप आर्चिव (या मूल PHP वर्ग) का उपयोग कर स्मृति में एक ज़िप फ़ाइल बनाना चाहता हूं और फ़ाइल की सामग्री को वापस क्लाइंट को पढ़ना चाहता हूं। क्या यह संभव है? यदि हां, तो कैसे?फ़ाइल को डिस्क लिखने के बिना PHP क्लास ZipArchive का उपयोग करके एक ज़िप फ़ाइल बनाएं?

जिन फ़ाइलों को मैं इस एप्लिकेशन में ज़िप करना चाहता हूं वे अधिकतम 15 एमबी हैं। मुझे लगता है कि हमें स्मृति के अनुसार अच्छे आकार में होना चाहिए।

+2

डुप्लिकेट: http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly – pestaa

+0

और आप ज़िप अभिलेखागार को कैसे संभालेंगे जो PHP पर उपलब्ध स्मृति की मात्रा से अधिक है? – stillstanding

+0

कृपया इस प्रश्न को खुला रहने दें, http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly को इस तरह से पूछा गया था कि यह उपयोगी उत्तर प्राप्त कर सके। – CLJ

उत्तर

3

निम्न लाइब्रेरी पर एक नज़र डालें, यह ज़िप फ़ाइलों को बनाने और उन्हें स्ट्रीम के रूप में लौटने की अनुमति देता है: PHPClasses.org

+3

मुझे कुछ ऐसा चाहिए जो मानक PHP पुस्तकालय के मूल निवासी है। – CLJ

+0

अगर मैं पूछ सकता हूं, तो क्या इसका कोई कारण है? –

+2

इसलिए मुझे निर्भरता में खींचने और समय के साथ बनाए रखने की आवश्यकता नहीं है। यदि इसे मानक लाइब्रेरी में शामिल किया गया है, तो मुझे php संस्करणों को अपग्रेड करते समय असंगत रूप से चिंता करने की आवश्यकता नहीं होगी। – CLJ

1

ZipStream (गिटहब रेपो से लिंक, Composer के माध्यम से स्थापित करने का भी समर्थन करता है) का प्रयास करें।

मूल लेखक की वेबसाइट (अब मृत) से:

ZipStream गतिशील सर्वर पर सब पर डिस्क के लिए लिख बिना PHP से गतिशील ज़िप फ़ाइलों स्ट्रीमिंग के लिए एक पुस्तकालय है।

+0

मुझे यह मृत लिंक के लिए एक अच्छा प्रतिस्थापन माना गया: https://github.com/maennchen/ZipStream-PHP '$ ज़िप = नया \ ZipStream \ ZipStream ('bulk-export.zip'); $ ज़िप-> addFile ('users.csv', '(यहां किसी अन्य विधि द्वारा उत्पन्न सीएसवी डेटा)'); $ ज़िप-> खत्म करें(); ' – Hans

+0

@ हंस फिर से अपडेट किया गया, धन्यवाद! –

0

एक और धागा इस बारे में बात कर रही है: Manipulate an Archive in memory with PHP (without creating a temporary file on disk)

बिछुआ phpmyadmin से zip.lib.php उपयोग करने के लिए सुझाव दिया है। मुझे लगता है कि यह एक ठोस समाधान है।

FYI करें zip.lib.php अब मौजूद नहीं है, यह एक ही पुस्तकालयों/फ़ोल्डर में द्वारा की जगह ZipFile.php किया गया है।