Laravel 图像干预保存路径
我的问题是如何在需要保护图像时创建合适的路径。我尝试了教程和之前的干预,所以回答了问题,但无法应用建议的解决方案。我在拉威尔使用图像干预 我当前的路径是:Laravel 图像干预保存路径,laravel,intervention,Laravel,Intervention,我的问题是如何在需要保护图像时创建合适的路径。我尝试了教程和之前的干预,所以回答了问题,但无法应用建议的解决方案。我在拉威尔使用图像干预 我当前的路径是: $filenameWithExtThumb = $request->file("thumbnail")->getClientOriginalName(); $filenameThumb = pathinfo($filenameWithExtThumb, PATHINFO_FILENA
$filenameWithExtThumb = $request->file("thumbnail")->getClientOriginalName();
$filenameThumb = pathinfo($filenameWithExtThumb, PATHINFO_FILENAME);
$extensionThumb = $request->file("thumbnail")->getClientOriginalExtension();
$fileNameToStoreThumb = $filenameThumb."_".time().".".$extensionThumb;
$image_resize = Image::make($request->file("thumbnail")->getRealPath());
$image_resize->resize(320, 240);
$pathThumb = $request->file("thumbnail")->storeAs("public/".auth()->user()->name."'s Thumbnails", $fileNameToStoreThumb);
如果我不调整大小就可以保存它。如果我使用
$pathThumb = $image_resize->storeAs("public/".auth()->user()->name."'s Thumbnails", $fileNameToStoreThumb);
它不起作用。
我还尝试:
$image_resize->save("/public/storage/".auth()->user()->name."'s Thumbnails");
这也不起作用。
及
我想用这个:
$pathThumb = $request->file("thumbnail")->storeAs("public/".auth()->user()->name."'s Thumbnails", $fileNameToStoreThumb);
使用$image\u resize
。有可能吗?怎么可能
我的道路是:
公共/存储.auth()->user()->name.“的缩略图”,$filenametostorembum
示例:public/storage/->Johnny的缩略图->文件名.jpg
Edit1:
通过执行如下路径解决:
$pathThumb=$image\u resize->save(公共路径(“存储/”.auth()->user()->name.”的缩略图/“$filenametostorehumb”)代码>
现在我想删除以前的缩略图,除非它不是“nothumbnail.jpg”
这也是一个路径问题:(
Edit2:edit1的解决方案:
几个小时后,我并没有发现错误,因为我修改了太多的原始代码,以至于我一辈子都找不到它。
所以我意外地想出了一个非常偶然的解决方案:
$filenameWithExtThumb = null;
$filenameThumb = null;
$extensionThumb = null;
$fileNameToStoreThumb = null;
$image_resize = null;
$pathThumb = null;
if($request->hasFile("thumbnail")){
$filenameWithExtThumb = $request->file("thumbnail")->getClientOriginalName();
$filenameThumb = pathinfo($filenameWithExtThumb, PATHINFO_FILENAME);
$extensionThumb = $request->file("thumbnail")->getClientOriginalExtension();
$fileNameToStoreThumb = $filenameThumb."_".time().".".$extensionThumb;
$image_resize = Image::make($request->file("thumbnail")->getRealPath());
$image_resize->resize(320, 240);
$pathThumb = $image_resize->save(public_path("storage/".auth()->user()->name."'s Thumbnails/".$fileNameToStoreThumb));
if($video->thumbnail!=="../nothumbnail.jpg"){
unlink(public_path("storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail));
$video->thumbnail = $fileNameToStoreThumb;
}
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = $fileNameToStoreThumb;
}
}
else{
if($video->thumbnail!=="../nothumbnail.jpg"){
unlink(public_path("storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail));
$video->thumbnail = "../nothumbnail.jpg";
}
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = "../nothumbnail.jpg";
}
}
虽然没有使用Storage facade,但vanilla php取消了文件删除链接。不使用Laravel的内置功能而不是vanilla的功能可以吗?我认为存储路径有点混乱。请尝试此代码,并确保您已使用php artisan Storage:link
这应该会将文件保存到存储器/app/public/User's Thumbnails/filename.ext链接自/public/storage/User's Thumbnails/filename.ext我认为存储路径有些混乱。请尝试此代码,并确保您已使用php artisan storage:link
这应该将文件保存到存储/app/public/User's Thumbnails/filename.ext,链接自/public/storage/User's Thumbnails/filename。ext解决了这个问题。请参阅编辑。我还有一个问题,请参阅编辑。请参阅编辑2。更重要的是,请参阅底部的问题。解决了这个问题。请参阅编辑。我还有一个问题,请参阅编辑另外,请参见edit2。更重要的是,请参见它底部的问题。我会从路径名中删除,
。首先,我猜,一眼就可以看出。即使路径名中有空格,我也会觉得很奇怪,所以试着删除它们。我会从路径名中删除,
。首先,我猜,一眼就可以看出。即使路径名中有空格,我也会觉得很奇怪我觉得很奇怪,所以试着把它们也扔了。
if ($request->hasFile('thumbnail')) {
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = $fileNameToStoreThumb;
}
if($video->thumbnail!=="../nothumbnail.jpg"){
Storage::delete("public/storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail);
$video->thumbnail = $fileNameToStoreThumb;
}
}
else{
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = "../nothumbnail.jpg";
}
if($video->thumbnail!=="../nothumbnail.jpg"){
Storage::delete("public/storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail);
$video->thumbnail = "../nothumbnail.jpg";
}
}
$filenameWithExtThumb = null;
$filenameThumb = null;
$extensionThumb = null;
$fileNameToStoreThumb = null;
$image_resize = null;
$pathThumb = null;
if($request->hasFile("thumbnail")){
$filenameWithExtThumb = $request->file("thumbnail")->getClientOriginalName();
$filenameThumb = pathinfo($filenameWithExtThumb, PATHINFO_FILENAME);
$extensionThumb = $request->file("thumbnail")->getClientOriginalExtension();
$fileNameToStoreThumb = $filenameThumb."_".time().".".$extensionThumb;
$image_resize = Image::make($request->file("thumbnail")->getRealPath());
$image_resize->resize(320, 240);
$pathThumb = $image_resize->save(public_path("storage/".auth()->user()->name."'s Thumbnails/".$fileNameToStoreThumb));
if($video->thumbnail!=="../nothumbnail.jpg"){
unlink(public_path("storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail));
$video->thumbnail = $fileNameToStoreThumb;
}
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = $fileNameToStoreThumb;
}
}
else{
if($video->thumbnail!=="../nothumbnail.jpg"){
unlink(public_path("storage/".auth()->user()->name."'s Thumbnails/".$video->thumbnail));
$video->thumbnail = "../nothumbnail.jpg";
}
if($video->thumbnail==="../nothumbnail.jpg"){
$video->thumbnail = "../nothumbnail.jpg";
}
}
if ($request->hasFile('thumbnail') && $request->file('thumbnail')->isValid()) {
$extension = $request->file("thumbnail")->getClientOriginalExtension();
$image_resize = Image::make($request->file('thumbnail'));
$image_resize->resize(320, 240);
$hash = md5($image_resize->__toString());
$filename = $hash . "." . $extension;
$image_resize->save(storage_path("app/public/" . auth()->user()->name . "'s Thumbnails/" . $filename));
}