我有一些代码来更改用户图像。但是更改后我必须按control+shift+R才能看到更改。我换File::delete()到unlink()。但它没有用。控制器代码:public function index(){ $id = Auth::id(); $info = Admin::select('name', 'login', 'image')- >where('id', $id)->first(); return view('admin.index')->with('info', $info);}public function changes(Request $request){ $this->validate($request,[ 'name' => 'required', 'login' => 'required', ]); $login = Auth::user()->login; $admin = Admin::where('login', $login)->first(); if($admin){ $admin->name = $request['name']; $admin->login = $request['login']; if(!is_null($request['old_password']) and !is_null($request['new_password'])){ $this->validate($request,[ 'new_password' => 'required', 'old_password' => 'required', ]); if(Hash::check($request['old_password'], Auth::user()->password)){ $new_password = Hash::make($request['new_password']); $admin->password = $new_password; } } if(!is_null($request['profile_image'])){ $this->validate($request,[ 'profile_image' => 'image|mimes:jpeg,png,jpg', ]); if (!is_null(Auth::user()->image)) { $admin_image = public_path() .'/'. Auth::user()->image; if((File::exists($admin_image))){ File::delete($admin_image); } } $image = $request->file('profile_image'); $image_extension = $image->getClientOriginalExtension(); $image_name= Auth::id() .'.'. $image_extension; $image->move(public_path('admin_assets/assets/images/users'), $image_name); $admin->image = $image_name; } $admin->save(); } return redirect()->route('admin.index');}我想我应该在索引操作中刷新公共文件夹,但是如何?
1 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
如果新的图像具有相同的URL
(在你的情况相同的名称和路径)中的旧图像浏览器使用的是在他自己的高速缓存中的旧形象。
除了要求用户按Ctrl+F5
(或Ctrl+Shift+R
)清除页面缓存外,此问题的最佳解决方案是:
更改名称每个用户改变图像本身的时间到图像。
将版本化的查询字符串(类似于
?v=2
)附加到图像URL
以强制浏览器请求新图像:URL
它与缓存中的所有内容不同,因此它被迫获取新资源。
- 1 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消