问题描述
在干预中,laravel 8 中的图像源不可读
<?PHP
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;
use Intervention\Image\ImageManager;
class PostsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function create()
{
return view('posts.create');
}
public function store()
{
$data = request()->validate([
// 'another' => '','caption' => 'required','image' => ['required','image'],]);
// open an image file
$image = Image::make(public_path('storage/{$imagePath}'))->fit(1200,1200);
$image->save();
$imagePath = request('image')->store('uploads','public');
auth()->user()->posts()->create([
'caption' => $data['caption'],'image' => $imagePath,]);
return redirect('/profile/' . auth()->user()->id);
}
}
我不知道是 public_path 还是什么导致错误在这里有帮助!!
解决方法
我尝试了以下方法,效果很好。
public function store()
{
$data = request()->validate([
'caption' => 'required','image' => ['required','image'],]);
$imagePath = request('image')->store('uploads','public');
//dd($imagePath);
$img = ImageManagerStatic::make(storage_path().'/app/public/'.$imagePath);
$img ->fit(400,400);
$img -> save(storage_path().'/app/public/'.$imagePath);
return redirect('/profile/' . auth()->user()->id);
}