Laravel делает загруженные изображения 600 перми - PullRequest
0 голосов
/ 09 мая 2018

Хорошо, я разместил сайт Laravel (версия 5.4) на общем хостинге, который использует cpanel. Мне удалось, чтобы public_html был вне корня приложения. Теперь проблема возникает, когда мое приложение пытается загрузить изображения на сервер через панель администратора. Таким образом, каждое загружаемое изображение имеет разрешения 600, поэтому они не могут использовать их позже (когда мне нужно показать их в галерее позже). Теперь я могу изменить разрешения вручную, но это не удерживает мою свечу, поскольку, очевидно, что-то в приложении сломано и у изображений есть 600 разрешений.

Вот мой контроллер для хранения изображений

 class GuitsController extends Controller{
public function store(Request $request){
    $this->validate($request, [
        'tbNaziv' => 'required|alpha',
        'tbMarka' => 'required|alpha',
        'tbTip' => 'required|alpha',
        'tbOpis' => 'required|alpha',
        'tbCena' => 'required|alpha_num',
        'tbSlika' => 'required|mimes:jpg,jpeg,png,gif'
    ]);

    $naziv = $request->get('tbNaziv');
    $marka = $request->get('tbMarka');
    $tip = $request->get('tbTip');
    $opis = $request->get('tbOpis');
    $cena = $request->get('tbCena');
    $pic = $request->file('tbSlika');

    $temp_path = $pic->getPathname();
    $ext = $pic->getClientOriginalExtension();
    $picName = time() . '.' . $ext;
    $path = 'pics/guits/' . $picName;
    $server_path = public_path($path);

    try{
        File::move($temp_path, $server_path);
        $guit = new Guit();
        $guit->naziv = $naziv;
        $guit->marka = $marka;
        $guit->tip = $tip;
        $guit->opis = $opis;
        $guit->cena = $cena;
        $guit->putanja_slike = $path;

        $result = $guit->save();

        if($result == 1){
            return redirect()->route('home')->with('success', 'Uspesan unos');}
        else{
            return redirect()->route('home')->with('error', 'Neuspesan unos');}
    }
    catch (\Exception $exception){
        \Log::error('Greska: ' . $exception->getMessage());
    }
}}

И вот что я сделал в AppServiceProvider.php, чтобы public_path работал

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    //
}

/**
 * Register any application services.
 *
 * @return void
 */
public function register()
{   $this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
  });
}
}

Видимо, что-то в приложении делает загруженные изображения с разрешениями 600 ... У кого-нибудь есть идеи?

...