2016-08-25 17 views
9

Jeśli prześlę plik z formularza, zostanie on zapisany we własnym katalogu magazynowania. Następnie powinienem utworzyć symlink do tej ścieżki do przechowywania w publicznej ścieżce.Jak zmienić ścieżkę przechowywania w laravel 5.3 na publiczny?

Nie mogę używać tworzenia dowiązań symbolicznych w moim systemie z powodu ograniczeń. Jak mogę przesłać pliki bezpośrednio pod numer public/uploads zamiast storage/app/uploads?

Próbowałem ustawić ścieżkę w AppServiceProvider.php, ale nie działa.

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'; 
    // }); 

} 

według "niedziałający" Mam na myśli to, że nadal ładuje się do domyślnego katalogu przechowywania. Oczyściłem także pamięć podręczną.

Oto część wysyłania (stosowany w kontrolerze):

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

Dzięki za wszelkie podpowiedzi. :)

Odpowiedz

17

W Laravel 5 musisz to teraz zrobić w config/filesystems.php. Można dodać nowy dysk tak:

'disks' => [ 

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

] 

a następnie wykonaj następujące czynności, aby go użyć:

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

dziękuję! :) to działa. W moim przykładzie przesłałem obraz z formularza. Mogę również wykonać następujące czynności, aby użyć dysku "uploaded": $ request-> image-> storeAs ($ upload_dir, "uploaded_image.jpg", "uploads"); – MilMike

+0

@George H, Wygląda na to, że opanowałeś laravel. Potrzebuję twojej pomocy. Zajrzyj tutaj: http://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3- registration –

Powiązane problemy