SpringBoot如何实现单文件与多文件上传功能
导读:本文共2296字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.单文件上传首先创建一个Spring Boot项目,并添加spring-boot-starter-web依赖然后创建一个upload.jsp文件,做一个简单的文件上传页面,具体代码如下:<%@pagecontentType="text/html;charset=UTF-8"language="java"%>... ...
目录
(为您整理了一些要点),点击可以直达。1.单文件上传
首先创建一个Spring Boot
项目,并添加spring-boot-starter-web
依赖
然后创建一个upload.jsp
文件,做一个简单的文件上传页面,具体代码如下:
<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><formaction="${pageContext.request.contextPath}/wjsc/upload"method="post"enctype="multipart/form-data"><inputtype="file"value="请选择文件"name="uploadFile"><inputtype="submit"value="点击上传"></form></body></html>
上传接口是wjsc/upload
,注意请求方法是post
,enctype
是multipart/form-data
然后创建上传文件接口:
@RequestMapping("/wjsc")@RestControllerpublicclassUploadController{/***文件上传*/@PostMapping("/upload")//MultipartFile接受前台传过来的文件publicStringupload(MultipartFileuploadFile,HttpServletRequestreq){SimpleDateFormatsdf=newSimpleDateFormat("yyyy/MM/dd/");//设置上传文件的保存路径为项目运行目录下的uploadFile文件夹StringrealPath=req.getSession().getServletContext().getRealPath("/uploadFile/");//获取当前日期对所上传的文件进行归类保存Stringformat=sdf.format(newDate());Filefolder=newFile(realPath+format);if(!folder.isDirectory()){//判断是否为目录folder.mkdirs();//不是目录就创建目录}//给上传的文件重命名StringoldName=uploadFile.getOriginalFilename();//获取文件名称StringnewName=UUID.randomUUID().toString()+oldName.substring(oldName.lastIndexOf("."),oldName.length());//设置新文件名try{//文件保存操作uploadFile.transferTo(newFile(folder,newName));//生成文件访问路径StringfilePath=req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+"/uploadFile/"+format+newName;returnfilePath;}catch(Exceptione){e.printStackTrace();}return"上传失败";}}
注意:MultipartFile变量名命名要与jsp中上传文件的name一致,不然会接收不到文件
最后测试:
运行项目,在浏览器中访问upload.jsp
页面进行文件上传
上传成功后会返回文件访问路径,用这个路径就可以访问到刚刚上传的图片
项目中也可以看到刚刚上传的图片成功了
至此,一个简单的单文件上传就完成了.
2.多文件上传
多文件上传和单文件上传基本一致,首先修改jsp文件,代码如下:
<
%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><formaction="${pageContext.request.contextPath}/wjsc/upload"method="post"enctype="multipart/form-data"><inputtype="file"value="请选择文件"name="uploadFiles"multiple><inputtype="submit"value="点击上传"></form></body></html>
然后修改上传文件接口:
/***多文件上传*/@PostMapping("/uploads")publicStringuploads(MultipartFile[]uploadFiles,HttpServletRequestreq){//遍历uploadFiles数组分别储存}
控制器里边的核心逻辑和单文件上传是一样的,只是多一个遍历的步骤。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
SpringBoot如何实现单文件与多文件上传功能的详细内容,希望对您有所帮助,信息来源于网络。