首先先看下效果图
这是添加的时候 可以上传照片
这是编辑的时候 可以修改照片
代码部分:
先看控制器:
/*** * 添加商户 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function add() { $data = null; return _view('admin.merchant.merchant.edit', compact('data')); } /*** * 添加商户 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function store(StoreMenchantRequest $request) { //判断手机号是否重复 重复不能添加 //后面开发可能会去掉这个判断 $merchant = Merchant::where('mobile', $request->mobile)->first(); if (!empty($merchant)) { return back()->withErrors('该用户已存在'); } $token = str_random(60); $api_token = $this->getToken($token); $newMerchantData = [ 'mobile' => $request->mobile, 'api_token' => $api_token, ]; DB::beginTransaction(); $newMerchant = Merchant::create($newMerchantData); $newData = [ 'merchant_id' => $newMerchant->id,//Merchantid 'merchant_principal' => $request->merchant_principal,//负责人 'merchant_name' => $request->merchant_name,//商家名称 'merchant_short_name' => $request->merchant_short_name,//商家简称 'merchant_address' => $request->merchant_address,//商家地址 'business_num' => $request->business_num,//注册号 'business_address' => $request->business_address,//营业地址 'business_name' => $request->business_name,//营业执照名称 'business_person' => $request->person,//营业执照法人 'identity_name' => $request->person,//身份证姓名 'identity_num' => $request->identity_num,//身份证号 ]; //上传缩略图 $input = $request->all(); if (isset($input['file']) && is_object($input['file'])) { $file_name = save_image_file($input['file'], 'merchant_infos'); if (!$file_name) { return back()->with('msg', '图片上传失败,请重试!'); } // dd($file_name); $input['thumbnail'] = $file_name; unset($input['_token']); unset($input['file']); } else { return back()->with('msg', '请上传图片'); } //上传内景图1 if (isset($input['image1']) && is_object($input['image1'])) { $file_name_1 = save_image_file($input['image1'], 'merchant_infos'); if (!$file_name_1) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_one'] = $file_name_1; unset($input['_token']); unset($input['image1']); } else { return back()->with('msg', '请上传图片'); } //上传内景图2 if (isset($input['image2']) && is_object($input['image2'])) { $file_name_2 = save_image_file($input['image2'], 'merchant_infos'); if (!$file_name_2) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_two'] = $file_name_2; unset($input['_token']); unset($input['image2']); } else { return back()->with('msg', '请上传图片'); } //上传内景图3 if (isset($input['image3']) && is_object($input['image3'])) { $file_name_3 = save_image_file($input['image3'], 'merchant_infos'); if (!$file_name_3) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_three'] = $file_name_3; unset($input['_token']); unset($input['image3']); } else { return back()->with('msg', '请上传图片'); } $merchantInfo = MerchantInfo::where('merchant_id', $newMerchant->id)->first(); if (!empty($merchantInfo)) { return back()->withErrors('该用户已录入信息'); } $homestayInfo = HomestayInfo::where('merchant_id', $newMerchant->id)->first(); if (!empty($homestayInfo)) { return back()->withErrors('该用户已录入信息'); } //录入商户信息 $newData['thumbnail'] = $input['thumbnail']; $newData['interior_figure_one'] = $input['interior_figure_one']; $newData['interior_figure_two'] = $input['interior_figure_two']; $newData['interior_figure_three'] = $input['interior_figure_three']; $newData['content'] = $input['content']; $newMerchantInfo = MerchantInfo::create($newData); $newHomestayInfo = HomestayInfo::create($newData); if ($newMerchantInfo && $newHomestayInfo && $newMerchant) { DB::commit(); admin_action_logs($newMerchant, "添加商户成功"); return redirect()->route('admin.merchant.index')->with('msg', '添加成功'); } else { DB::rollback(); return back()->withErrors('添加失败,请联系管理员'); } }
这边封装了一个上传图片的方法,调用即可
** * 调用的文件中需要 use Illuminate\Support\Facades\Input; Illuminate\Support\Facades\Storage; * save_image_file 保存图片文件 ,存在Storage::disk('uploads') 目录下 * @var $file object 上传的图片文件,具体是在 request 中的 UploadedFile 类型的对象 * @var $prefix_name string 可选保存的文件名前缀 * @var $path string 文件路径 * @return bool/string 如果通过验证 则返回在新的文件名 */ if (!function_exists('save_image_file')) { function save_image_file(&$file, $prefix_name = '', $path = 'serve') { $file = isset($file) "" && $file->getClientOriginalName() == 'blob') { $ext = 'png'; } if (!preg_match('/jpg|png|gif$/is', $ext)) { return false; } //dd($file->getRealPath()); $realPath = $file->getRealPath(); //临时文件的绝对路径 $type = $file->getClientMimeType(); // image/jpeg // 上传文件 $filename = $prefix_name . '-' . date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $ext; //dd($filename); $bool = Storage::disk($path)->put($filename, file_get_contents($realPath)); if (!$bool) return false; return $filename; } return false; } }
接下来是编辑时候 显示已经上传的图片 并且可以进行修改:
<div class="row"> <div class="col-lg-6 col-sm-8 col-xs-12"> <div class="panel panel-default"> {{ Form::open(['method'=>'post','route' => ['admin.merchant.add_img_store'],'enctype'=>'multipart/form-data']) }} <div class="panel-heading">商户图片</div> <div class="panel-body"> <input type="hidden" name="id" value="{{$data->id}}"> <div class=" form-group"> <"form-group {{!$hasUrl or 'has-error'}} has-feedback"> <label class="control-label" for="file"> <span class="font-red">*</span> <span>缩略图:</span> <span class="font-gray">(宽高为120px:120px):</span> </label> <div class="input-group"> @if( $hasUrl ) <input type="file" class="file-preview form-control" name="file" id="file" accept="image/*" value="{{ old_or_new_field('thumbnail',$data) }}"> @else <input type="file" class="file-preview form-control validate" name="file" required id="file" accept="image/*" value="{{ old_or_new_field('thumbnail',$data) }}"> @endif </div> </div> <div class="file-preview-wrap"> <img @if( old_or_new_field('thumbnail',$data) ) src="/UploadFiles/2021-04-02/'.old_or_new_field('thumbnail',$data)}}">编辑这边 的控制器代码是:
/*** * 添加图片 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function add_img() { $data = null; return _view('admin.merchant.merchant.add', compact('data')); } /*** * 保存图片 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function add_img_store(Request $request) { //上传缩略图 $input = $request->all(); if (isset($input['file']) && is_object($input['file'])) { $file_name = save_image_file($input['file'], 'merchant_infos'); if (!$file_name) { return back()->with('msg', '图片上传失败,请重试!'); } $input['thumbnail'] = $file_name; unset($input['_token']); unset($input['file']); } else { return back()->with('msg', '请上传图片'); } //上传内景图1 if (isset($input['image1']) && is_object($input['image1'])) { $file_name_1 = save_image_file($input['image1'], 'merchant_infos'); if (!$file_name_1) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_one'] = $file_name_1; unset($input['_token']); unset($input['image1']); } else { return back()->with('msg', '请上传图片'); } //上传内景图2 if (isset($input['image2']) && is_object($input['image2'])) { $file_name_2 = save_image_file($input['image2'], 'merchant_infos'); if (!$file_name_2) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_two'] = $file_name_2; unset($input['_token']); unset($input['image2']); } else { return back()->with('msg', '请上传图片'); } //上传内景图3 if (isset($input['image3']) && is_object($input['image3'])) { $file_name_3 = save_image_file($input['image3'], 'merchant_infos'); if (!$file_name_3) { return back()->with('msg', '图片上传失败,请重试!'); } $input['interior_figure_three'] = $file_name_3; unset($input['_token']); unset($input['image3']); } else { return back()->with('msg', '请上传图片'); } //录入商户信息 $merchang_info = MerchantInfo::where('merchant_id', '=', $input['id'])->first(); if (empty($merchang_info)) { $newData['thumbnail'] = $input['thumbnail']; $newData['merchant_id'] = $input['id']; $newData['interior_figure_one'] = $input['interior_figure_one']; $newData['interior_figure_two'] = $input['interior_figure_two']; $newData['interior_figure_three'] = $input['interior_figure_three']; $newData['content']=''; $result = MerchantInfo::create($newData); } /* $newData['thumbnail']=$input['thumbnail']; $newData['interior_figure_one']=$input['interior_figure_one']; $newData['interior_figure_two']=$input['interior_figure_two']; $newData['interior_figure_three']=$input['interior_figure_three']; // $newData['content']=$input['content']; $newMerchantInfo = MerchantInfo::create($newData);*/ else { $merchang_info->thumbnail = $input['thumbnail']"编辑商户成功"); return redirect()->route('admin.merchant.index')->with('msg', '编辑成功'); } else { DB::rollback(); return back()->withErrors('编辑失败,请联系管理员'); } }以上这篇laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月17日
2024年11月17日
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】