我用前端框架是layui!
1 //@SuppressWarnings("unused") 2 @RequestMapping(value = "/lunbo/add.do", method = RequestMethod.POST) 3 @ResponseBody 4 public Map<String, Object> addlunbo(@RequestParam("file") MultipartFile file, HttpServletRequest request) { 5 Assert.notNull(file, "上传文件不能为空"); 6 //上传文件的路径(上传地址) 7 String filepath = request.getServletContext().getRealPath("/upload"); 8 //后缀名,给文件加上后缀名 9 String filename = System.currentTimeMillis() + ".zip"; 10 // 确保路径存在,如果不存在,就创建一个路径 11 File file2 = new File(filepath); 12 if (!file2.exists()) { 13 file2.mkdirs(); 14 } 15 /* 将路径和后缀名连接起来————在java中一般用“/”,结合起来后用“\” */ 16 /* \一般用于局域网中计算机之间的互访,也就是说它后面加一个IP或者机器名,可以访问另一台机器。*/ 17 String savepath = filepath + "\" + filename; 18 //在控制台输出 19 System.out.println("轮播图保存路径:" + savepath); 20 try { 21 // 保存文件到服务器 22 file.transferTo(new File(savepath)); 23 // 保存到数据库 24 // 返回json 25 map.put("message", "ok"); 26 map.put("code", 200); 27 map.put("status", "SUCCESS"); 28 map.put("data", filename); 29 30 } catch (Exception e) { 31 map.put("msg", "error"); 32 map.put("code", 0); 33 e.printStackTrace(); 34 } 35 36 return map; 37 }
以上是我的后台controller代码
jsp页面的代码如下:
1 <div class="layui-upload"> 2 <button type="button" class="layui-btn" id="test1">选择协议</button> 3 <button type="button" class="layui-btn" id="test9">开始上传</button> 4 <div class="layui-upload-list"> 5 <div class="layui-input-inline"> 6 <input name="protocolPath" class="layui-input" type="text" 7 readonly="readonly" autocomplete="off" lay-verify="required"> 8 </div> 9 </div> 10 </div>
在下面写的layui的监听事件
1 var uploadInst = upload 2 .render({ 3 elem : '#test1', 4 url : '${pageContext.request.contextPath}/version/lunbo/add.do', 5 auto : false, 6 accept : 'file', 7 acceptMime : '.rar,.zip,.7z', 8 size : '1024*5', 9 before : function(obj) { 10 //预读本地文件示例,不支持ie8 11 obj.preview(function(index, file, 12 result) { 13 }); 14 }, 15 bindAction : '#test9', 16 done : function(json) { 17 /*让路径返回到input里面*/ 18 $("#versions").find( 19 "input[name='protocolPath']") 20 .val(json.data); 21 //如果上传失败 22 if (json.code == 0) { 23 return layer.msg('上传失败-------'); 24 } 25 //上传成功 26 if (json.code > 0) { 27 return layer.msg('上传成功--------'); 28 } 29 } 30 });