2016-08-25 3 views
9

laravel 5.3 में, अगर मैं किसी फॉर्म से फ़ाइल अपलोड करता हूं, तो यह अपनी स्टोरेज निर्देशिका में संग्रहीत होगा। फिर मुझे सार्वजनिक पथ में उस भंडारण पथ पर symlink बनाना चाहिए।लार्वेल 5.3 में भंडारण पथ को सार्वजनिक रूप से कैसे बदलें?

मैं सीमा के कारण अपने सिस्टम पर सिम्लिंक बनाने का उपयोग नहीं कर सकता। storage/app/uploads के बजाय मैं फ़ाइलों को सीधे public/uploads पर कैसे अपलोड कर सकता हूं?

मैंने AppServiceProvider.php में पथ सेट करने का प्रयास किया लेकिन यह काम नहीं करता है।

public function register() 
{ 
    //not working: 
    $this->app->useStoragePath($this->app->basePath() . "/upload"); 

    //also not working: 
    // $this->app->bind('path.storage', function() { 
    // return $this->app->basePath() . '/upload'; 
    // }); 

} 

"काम नहीं कर रहा" मेरा मतलब है कि यह अभी भी डिफ़ॉल्ट स्टोरेज निर्देशिका में अपलोड हो रहा है। मैंने भी कैश साफ़ कर दिया।

 $request->image->storeAs("uploads", "uploaded_image.jpg"); 

किसी भी संकेत के लिए धन्यवाद:

यहाँ अपलोड हिस्सा (एक नियंत्रक में प्रयोग किया जाता है)। :)

उत्तर

17

लार्वेल में 5 अब आपको config/filesystems.php में ऐसा करना है। तुम इतनी तरह एक नया डिस्क जोड़ सकते हैं:

'disks' => [ 

    'uploads' => [ 
      'driver' => 'local', 
      'root' => public_path(), // previously storage_path(); 
    ], 

] 

और फिर इसे उपयोग करने के लिए निम्न करें:

Storage::disk('uploads')->put('filename', $file_content); 
+1

धन्यवाद! :) यह काम करता हैं। मेरे उदाहरण में मैं एक फॉर्म से एक छवि अपलोड कर रहा था। मैं अपनी "अपलोड" डिस्क का उपयोग करने के लिए निम्न कार्य भी कर सकता हूं: $ request-> image-> storeAs ($ upload_dir, "upload_image.jpg", "अपलोड"); – MilMike

+0

@ जॉर्ज एच, ऐसा लगता है कि आप मास्टर लार्वेल हैं। मैं तुम्हारी मदद चाहता हूँ। यहां देखें: http://stackoverflow.com/questions/41047583/how-to-add- गतिशील- ड्रोपडाउन-list-column-on-laravel-5-3- पंजीकरण –

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