laravel 用户上传的图像应存储在public/userprofileimage.jpg等项目中,否则将受到版本控制的影响

xa9qqrwz  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(94)

考虑这样一种情况:当存储库版本为1.0.0时,用户上传了他的配置文件映像,并将其作为public/userprofileimage.jpg放置在项目中。
然后从GitHub中提取、修改或添加新代码,并将其推送到存储库中,成为版本2.0.0。
如何在用户每次上传内容时将最新上传的照片添加到存储库?
用户上传的图片会在2.0.0中吗?
否则图像将丢失
如果是这样的话,我应该如何处理用户上传的图像,以免它们在版本控制中丢失?

if($request->hasFile('image1') && $request->hasFile('image2') && $request->hasFile('image3') && $request->hasFile('image4')){
        $formFields['media'] = 
        $request->file('image1')->store('postUploads','public') . ',' 
        . $request->file('image2')->store('postUploads','public') . ',' 
        . $request->file('image3')->store('postUploads','public') . ',' 
        . $request->file('image4')->store('postUploads','public');
    }

然后做了

php artisan storage:link

我像这样恢复图像

<img src="{{asset('storage/' . $image)}}" class="md:w-48 m-2 rounded" alt="">

这条路对吗?
谢谢

gcuhipw9

gcuhipw91#

更好的方法

use Illuminate\Support\Facades\Validator;

public function store(Request $request){

 $validate = Validator::make($request->all(), [
   $request->file('image1') => 'required|mimes:jpg,png,jpeg',
   $request->file('image2') => 'required|mimes:jpg,png,jpeg',
   $request->file('image3') => 'required|mimes:jpg,png,jpeg',
   $request->file('image4') => 'required|mimes:jpg,png,jpeg',
 ]);

if( $validate->fails() ){
 return response($validate->errors(), 400);
}

//anything below here means validation passed. You can then store your images

$path1 = $request->file('image1')->store('profile_pictures','public');
$path2 = $request->file('image2')->store('profile_pictures','public');
$path3 = $request->file('image3')->store('profile_pictures','public');
$path4 = $request->file('image4')->store('profile_pictures','public');

}

请注意,这甚至可以通过将图像保存到数组来进一步简化。我没有使用这种方法,因为我不确定是否所有的图像都是配置文件图像或将以不同的方式使用。
您的图像将存储在/storage/profile_pictures中,Laravel将自动为您生成图像名称。
在您的视图中,您可以使用asset助手调用图像,如下所示

<img src="{{ asset($path1) }}"/>

这是假设你正在发送的图像路径单独,这也可以简化的基础上,您的应用程序。希望这给予你一个想法。

相关问题