工作时遇到的问题之layui表格实现图片上传功能
闲聊
还记得当时经理说你可以在这个表格里面加个图片上传功能 这样方便让用户用来更换头像,依然记得当时整个模块都弄好了这怎么办难搞阿,没办法再难搞也得搞 搞了一下午硬生生挤出了一块(也为我后续埋下了一个坑,想知后续如何请看下篇) 话不多说给兄弟们展示
前端的代码Layui官网上也有,大家可以参考一下(主要是后端比较难实现,话不多说 小二上代码)
div
<div class="layui-form-item" style="padding-right: 50px;"> <div class="layui-form-item"> <label class="layui-form-label">作者头像</label> <div class="layui-input-block"> <button type="button" class="layui-btn" id="upload1">上传图片</button> <input type="hidden" id="img_url" name="img" value=""/> <div class="layui-upload-list"> <img class="layui-upload-img" width="200px" height="120px" id="demo1"/> <p id="demoText"></p> </div> </div> </div>
js里的
<script src="../../js/jquery-3.4.1.min.js"></script>//换成自己的js路径 <script src="../../layui/layui.js"></script>//换成自己的Layui路径 <script> // 文件上传 layui.use('upload', function(){ var $ = layui.jquery ,upload = layui.upload; //普通图片上传 var uploadInst = upload.render({ elem: '#upload1' ,url: '/EmployeeController/uploadFile' //改成您自己的上传接口 ,before: function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#demo1').attr('src', result); //图片链接(base64) }); } ,done: function(res){ //如果上传失败 if(res.code > 0){ layer.msg('上传失败'); } //上传成功 layer.msg('上传成功'); //将图片的名字放在表单中,添加的时候得放在数据库里面 $(function(){ var adminImg=$("#fileName").val(res.msg); //alert('赋值成功'); alert("adminImg:"+adminImg); }) } ,error: function(){ //演示失败状态,并实现重传 var demoText = $('#demoText'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.find('.demo-reload').on('click', function(){ uploadInst.upload(); }); } }); }); </script>
真正的主菜来了
Controller里的
//图片上传 @ResponseBody @RequestMapping("/uploadFile") public JSON uploadFile(MultipartFile file, HttpServletRequest request) { JSONObject json = new JSONObject(); //路径 //System.getProperty("file.separator")文件执行符:\\ String filePath = "E:"+System.getProperty("file.separator") + "idea/dika/src/main/webapp/addressimg/";//上传到这个文件夹 File file1 = new File(filePath); //如果没有的话创建一个 if (!file1.exists()) { file1.mkdirs(); } //路径+文件名 //文件名:file.getOriginalFilename() String finalFilePath = filePath + file.getOriginalFilename().trim(); File desFile = new File(finalFilePath); if (desFile.exists()) { desFile.delete(); } try { file.transferTo(desFile); json.put("code", 0); //将文件名放在msg中,前台提交表单时需要用到 json.put("msg", file.getOriginalFilename().trim()); JSONObject json2 = new JSONObject(); json2.put("src", finalFilePath); json2.put("title", ""); json.put("Data", json2); } catch (Exception e) { System.out.println(e.getMessage()); json.put("code", 1); } System.out.println(json); return json; }
千万不要忘了在maven中添加JSON依赖
<!--json依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency>#Java开发##实习##bug##工作问题##Layui#
java面经 文章被收录于专栏
分享Java里的一些遇到的问题与面试技巧