laravel источник изображения вмешательства не читается при развертывании - PullRequest
0 голосов
/ 07 января 2020

Вмешательство класса изображения не читается! Может ли кто-нибудь помочь мне, почему изображение не читается ошибка отображается при развертывании, когда я загружаю новые фотографии в проект laravel, что вполне нормально в среде разработки, но в производстве есть эта ошибка введите описание изображения здесь

И это мой код вмешательства в контроллер

    if($request->hasFile('file')){
        $nameWithExtension =  $request->file('file')->getClientOriginalName();
        $extension =  $request->file('file')->getClientOriginalExtension();
        $fileName = pathinfo($nameWithExtension, PATHINFO_FILENAME);
        $newFileName = $fileName.'_'.time().'.'.$extension;


        $upperExt = strtoupper($extension);
        if($upperExt == 'JPEG' OR $upperExt == 'PNG' OR $upperExt == 'JPG' OR $upperExt == 'GIF'){
            $request->file('file')->storeAs('public/doctor/',$newFileName);
            $request->file('file')->storeAs('public/doctor_small/',$newFileName);
            $request->file('file')->storeAs('public/doctor_small2/',$newFileName);

        //Resize image here 

            $thumbnailpath = public_path('storage/doctor_small/'.$newFileName);
            $img = Image::make($thumbnailpath)->resize(520, 668, function($constraint) {
                $constraint->aspectRatio();
            });
            $img->save($thumbnailpath);

            $thumbnailpath2 = public_path('storage/doctor_small2/'.$newFileName);
            $img2 = Image::make($thumbnailpath2)->resize(100, 100)->save($thumbnailpath2);

        }
    }

1 Ответ

0 голосов
/ 14 марта 2020

Всякий раз, когда я вижу этот тип вопроса, все отвечают, что вы должны сохранить его в папке publi c проекта. говорит, используйте это хранилище: ссылка, но это не всегда так, вы должны иметь в виду, что если вы загрузите папку в двух разных проектах, один public_ html, а другой в папку, которая называется, например, мои проекты будут храниться в папка my project и laravel будет искать их в public_ html там, где их нет, решение было бы поместить весь проект в publi c html, изменив .httacces таким образом

<IfModule mod_rewrite.c>
   <IfModule mod_negotiation.c>
       Options -MultiViews -Indexes
   </IfModule>
   RewriteEngine On
   # Handle Authorization Header
   RewriteCond %{HTTP:Authorization} .
   RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
   # Redirect Trailing Slashes If Not A Folder...
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_URI} (.+)/$
   RewriteRule ^ %1 [L,R=301]
   # Handle Front Controller...
   RewriteRule ^(.*)$ public/$1 [L]
   RewriteRule ^ index.php [L]
</IfModule>
...