मैं एक फ़ाइल लिखने के लिए Storage::put
का उपयोग करना चाहता हूं। फ़ाइल संभावित रूप से बहुत बड़ी (> 100 एमबी) है, इसलिए मैं एक स्ट्रीम का उपयोग करना चाहता हूं इसलिए मैं अंधेरे से स्मृति में सब कुछ नहीं डालता।लाइन से लाइन लिखने के लिए मैं संसाधन का उपयोग कैसे कर सकता हूं लेकिन अभी भी लैरवेल के स्टोरेज में निर्मित का उपयोग कर सकता हूं?
मैं एकाधिक एपीआई अनुरोध करने जा रहा हूं, और उसके बाद अपने परिणामों के माध्यम से लूपिंग कर रहा हूं, इसलिए जो डेटा मैं वापस प्राप्त कर रहा हूं वह कोई मुद्दा नहीं है, यह समझदार मात्रा तक ही सीमित होगा।
documentation के अनुसार, मैं उपयोग करने की आवश्यकता:
Storage::put('file.xml', $resource);
लेकिन क्या $resource
यहाँ हो सकता है?
पारंपरिक रूप से PHP का उपयोग करते हुए फ़ाइलों को लिखते समय मैंने इसे 'लाइन द्वारा लाइन' लिखने के लिए fopen
, fwrite
और fclose
के संयोजन के साथ किया है। मैं विभिन्न संग्रहों के माध्यम से लूपिंग करके फ़ाइल बना रहा हूं और विभिन्न एपीआई का उपयोग कर रहा हूं, इसलिए $resource
एक फ़ाइल सूचक या फ़ाइल संदर्भ जैसा कि दस्तावेज़ में कहीं और बात की गई है।
तो, मैं स्ट्रीम और लैरवेल के Storage
का उपयोग करके लाइन द्वारा लाइन कैसे लिख सकता हूं?
यदि आप अलग-अलग नाम से फ़ाइल अपलोड करना चाहते हैं, तो 'putFileAs' का उपयोग करें। – ljubadr
'$ file' का उदाहरण है [अपलोडेडफाइल] (https://laravel.com/api/5.3/Illuminate/Http/UploadedFile.html), ताकि आप उपलब्ध विधियों के लिए वहां देख सकें – ljubadr
मेरे प्रश्न के अनुसार, मैं हूं फ़ाइल अपलोड नहीं कर रहा है, और मैं किसी फ़ाइल को दूसरी फ़ाइल में स्ट्रीम नहीं कर रहा हूं। मैं एक सादे-पाठ फ़ाइल लिखने की कोशिश कर रहा हूं जिसे मैं स्ट्रीमिंग फैशन में कोड में बना रहा हूं।मैंने इसे 'fopen' और' fwrite' का उपयोग करके बहुत आसानी से लिखने में कामयाब रहा है, लेकिन अंतर्निहित 'स्टोरेज 'विधियों को प्राथमिकता देगा। मुझे लगता है कि यह संभव नहीं है। – Mike