首页 文章资讯内容详情

layui+springmvc实现文件异步上传

2026-06-01 4 花语

本文内容纲要:

一.单文件上传

前端代码

<div class="layui-upload"> <div class="layui-upload-list"> <imgclass="layui-upload-img"id="demo1"> <pid="demoText"></p> </div> <buttontype="button"class="layui-btn"id="upload_btn">上传图片</button> </div> layui.use(upload,function(){ var$=layui.jquery ,upload=layui.upload; //普通图片上传 varuploadInst=upload.render({ elem:#upload_btn ,url:/uploadImg ,before:function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index,file,result){ $(#demo1).attr(src,result);//图片链接(base64) }); } ,done:function(res){ //如果上传失败 if(res.code===0){ returnlayer.msg(文件上传成功!); } if(res.code===2){ returnlayer.msg(不支持该上传类型); } if(res.code===3){ returnlayer.msg(文件为空); }else{ returnlayer.msg(文件上传异常); } //上传成功 } ,error:function(){ //演示失败状态,并实现重传 vardemoText=$(#demoText); demoText.html(<spanstyle="color:#FF5722;">上传失败</span><aclass="layui-btnlayui-btn-minidemo-reload">重试</a>); demoText.find(.demo-reload).on(click,function(){ uploadInst.upload(); }); } }); });

后端代码

在这边遇到一些问题:

1.springmvc的xml需要配置文件上传的类,否则会接收不了上传的文件

<beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--设置上传文件最大尺寸,单位为B--> <propertyname="maxUploadSize"value="1000000000"/> </bean>

2.接收文件需要用@RequestParam("file")指定参数名称,layui默认文件上传的name是file

3.获取项目的绝对路径并拼接成新的图片地址

@Controller publicclassFileUploadController{ @RequestMapping("/uploadImg") @ResponseBody publicRetResultupload(@RequestParam("file")MultipartFilemultipartFile,HttpSessionsession){ if(!StringUtils.isEmpty(multipartFile)&&multipartFile.getSize()>0){ Stringfilename=multipartFile.getOriginalFilename(); Stringsuffix=filename.substring(filename.lastIndexOf(".")+1); if(filename.endsWith("jpg")||filename.endsWith("png")){ StringrealPath=session.getServletContext().getRealPath("/")+"/image/"+newDate().getTime()+"."+suffix; Filenewfile=newFile(realPath); try{ multipartFile.transferTo(newfile); returnRetResult.successRet(null); }catch(IOExceptione){ e.printStackTrace(); returnRetResult.errorRet(1,"文件上传异常"); } }else{ returnRetResult.errorRet(2,"不支持该上传类型"); } }else{ returnRetResult.errorRet(3,"文件为空"); } } }

本文内容总结:

原文链接:https://www.cnblogs.com/wangxiayun/p/9265248.html