2015-03-25 9 views
6

से फ़ाइल डाउनलोड करें मैं फ्लाईस्पेस का उपयोग कर रैकस्पेस पर किसी साइट के लिए फाइल संग्रहीत कर रहा हूं। अपलोड कर रहा है कोई समस्या नहीं है, पता लगाना एक फ़ाइल के लिए एक डाउनलोड शुरू करने के लिए कैसे परेशानी हो रही है - यह मैं क्या कोशिश की हैलार्वेल 5 फ्लाईसिस्टम - रिमोट डिस्क

Storage::disk('rackspace'); 
return response()->download('file-library/' . $file->filename); 

नतीजा यह है कि फ़ाइल पाया नहीं जा सका है। Storage::disk() जोड़ रहा है स्थानीय स्तर पर लार्वाले को इस स्थान में देखने के लिए पर्याप्त है? इसे निष्पादित करने का श्रेष्ठ तरीका क्या है?

उत्तर

-3

Storage::disk() जोड़ रहा है ताकि स्थानीय स्थान की बजाय लार्वाले को इस स्थान में देखने के लिए पर्याप्त बनाया जा सके?

नहीं, यह response()->download() कॉल को प्रभावित नहीं करेगा।

कुछ इस तरह काम करना चाहिए:

return response()->download(Storage::disk('rackspace')->get('file-library/' . $file->filename)); 
+0

'is_file() पैरामीटर 1 मान्य पथ होने की अपेक्षा करता है, स्ट्रिंग दिया गया है। डाउनलोड का पहला पैरामीटर एक पथ (स्ट्रिंग) – NightMICU

+0

@NightMICU है, मुझे लगता है कि आपको इसे एक अस्थायी फ़ाइल में खींचना पड़ सकता है, मुझे लगता है। या बस उपयोगकर्ता को सीधे रैकस्पेस के भंडारण से लिंक करें। – ceejayoz

+0

@ceeyaoz अजीब लगता है कि उन्होंने इस बारे में सोचा नहीं होगा। मैं अस्थायी फ़ाइलों के साथ गड़बड़ करने से बचना चाहता हूं (विचार इस प्रकार की सभी फाइलों को मेरे स्थानीय फाइल सिस्टम से दूर रखना था) और वर्तमान पृष्ठ छोड़ने वाले उपयोगकर्ता के बिना डाउनलोड शुरू करने की उम्मीद थी। – NightMICU

18

फ्रैंक यहाँ Flysystem से।

ऐसा करने का पसंदीदा तरीका प्रतिक्रिया :: स्ट्रीम के साथ संयोजन में रीडस्ट्रीम आउटपुट का उपयोग करना होगा।

<?php 

$fs = Storage::disk('diskname')->getDriver(); 
$stream = $fs->readStream($file); 

return Response::stream(function() use($stream) { 
    fpassthru($stream); 
}, 200, [ 
    "Content-Type" => $fs->getMimetype($file), 
    "Content-Length" => $fs->getSize($file), 
    "Content-disposition" => "attachment; filename=\"" . basename($file) . "\"", 
]); 

$fsLeague\Flysystem\Filesystem उदाहरण है। मेरा मानना ​​है कि इस इंस्टेंस को फाइल सिस्टम क्लास लार्वेल में उपलब्ध कराने के लिए एक तरीका है।

+0

हाय फ्रैंक, इसके लिए धन्यवाद - क्या लारवेल में काम करने के लिए ज्ञात एक उदाहरण के साथ अद्यतन करना संभव होगा? मैं फाइल सिस्टम इंस्टेंस के साथ एक बड़ा खो गया हूं क्योंकि यह लैरवेल – NightMICU

+0

से संबंधित है, मैंने इसे पहली पंक्ति में जोड़ा है। –

+0

मैं पुष्टि कर सकता हूं कि यह लुमेन में काम करता है, ऐसा कोई कारण नहीं दिखता कि यह लार्वेल 5 –

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