文件上传到服务器,并且保存到数据库;欢迎各位大牛指出问题,感谢百忙之中前来看看,我这个是已经实现的,但是应该有更加优化的,希望指出,感激不尽,

我用前端框架是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                                 });
原文地址:https://www.cnblogs.com/a973692898/p/11577081.html