SpringBoot文件上传下载
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>qiu</groupId> <artifactId>fileupload</artifactId> <version>0.0.1-SNAPSHOT</version> <name>fileupload</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
三、SpringBoot配置文件application.properties
server.port=6555# 上传文件总的最大值spring.servlet.multipart.max-request-size=10MB# 单个文件的最大值spring.servlet.multipart.max-file-size=10MB## jsp#spring.mvc.view.prefix=/WEB-INF/jsp/#spring.mvc.view.suffix=.jspspring.mvc.static-path-pattern=/**
四、前端页面
前端页面放于resources目录下面的public目录中,springboot会默认加载这个目录。
<!DOCTYPE html><html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> <title>文件上传</title> <style> form{padding:20px 15px 15px 120px;} form{width:500px;height:300px;} form fieldset{border:0;align:center;} form label{display:inline-block;width:70px;text-align:right} input{width:240px;height:30px;} #submit{width:200px;height:35px;position:relative;left:70px;} #submit:hover{cursor: pointer;background:#D8D8D8;} body{width:100%;height:100%;background-image: url(img/1.jpg);} #box{position:fixed;left:0px;right:0px;width:706px;margin-left:auto;margin-right:auto;top:100px;} #code{width: 70px;height: 40px;font-size:18px;} #captcha_img{position:relative;bottom:-15px;} a{position:relative;bottom:-10px;} </style> </head> <body > <div id="box"> <form method="post" action="upload" enctype="multipart/form-data" > <fieldset> <div > 文件上传 </div> <!-- <p> <label>用户名:</label> <input type="text"name="username"placeholder="用户名"required="required"/> </p> <p> <label>密码:</label> <input type="password"name="password"placeholder="密码"required="required"/> </p> --> <p> <label>选择文件:</label> <input type="file" name="file"> </p> <p> <label>保存路径:</label> <input type="text" name="path" id="path" value="L:\"/> </p> <p> <input type="submit" value="开始上传" name="submit" id="submit"/> </p> </fieldset> </form> </div> </body></html>
五、controller
package qiu.fileupload.test;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOException;@Controllerpublic class GetFile { @GetMapping("/upload") public String upload() { return "upload"; } @PostMapping("/upload") @ResponseBody public String upload(@RequestParam("file") MultipartFile file,@RequestParam("path") String path) { if (file.isEmpty()) { return "上传失败,请选择文件"; } System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaa"); String fileName = file.getOriginalFilename(); String filePath = path; System.out.println(filePath); File dest = new File(filePath + fileName); try { file.transferTo(dest); return "上传成功"; } catch (IOException e) { } return "上传失败!"; }}
六、测试1、浏览器中输入地址:http://localhost:6555/register.html
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>文件下载</title></head> <body > <h3>文件下载列表</h3> <hr/> <div style="background-color: #F8F8FF;width: 900px;height: 800px;margin: auto; border: solid 2px blue;"> <div > <br><br><br> 下载:  <a href="/MyProject/testDownload1">1.png</a> <br> 下载:  <a href="/MyProject/testDownload2">Android常用英语.docx</a><br> 下载:  <a href="/MyProject/testDownload3">Git-2.17.0-64-bit.exe</a><br> 下载:  <a href="/MyProject/testDownload4">MyBatis源代码.zip</a><br> </div> </div> </body></html>
package qiu.fileupload.test;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletResponse;import java.io.*;@Controllerpublic class DownloadFile { @RequestMapping(value = "/testDownload1", method = RequestMethod.GET) public void Download1(HttpServletResponse res) { String fileName = "1.png"; res.setHeader("content-type", "application/octet-stream"); res.setContentType("application/octet-stream"); res.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buff = new byte[1024]; BufferedInputStream bis = null; OutputStream os = null; try { os = res.getOutputStream(); bis = new BufferedInputStream(new FileInputStream(new File("L://test//" + fileName))); int i = bis.read(buff); while (i != -1) { os.write(buff, 0, buff.length); os.flush(); i = bis.read(buff); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } } @RequestMapping(value = "/testDownload2", method = RequestMethod.GET) public void Download2(HttpServletResponse res) { String fileName = "Android常用英语.docx"; res.setHeader("content-type", "application/octet-stream"); res.setContentType("application/octet-stream"); res.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buff = new byte[1024]; BufferedInputStream bis = null; OutputStream os = null; try { os = res.getOutputStream(); bis = new BufferedInputStream(new FileInputStream(new File("L://test//" + fileName))); int i = bis.read(buff); while (i != -1) { os.write(buff, 0, buff.length); os.flush(); i = bis.read(buff); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } } @RequestMapping(value = "/testDownload3", method = RequestMethod.GET) public void Download3(HttpServletResponse res) { String fileName = "Git-2.17.0-64-bit.exe"; res.setHeader("content-type", "application/octet-stream"); res.setContentType("application/octet-stream"); res.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buff = new byte[1024]; BufferedInputStream bis = null; OutputStream os = null; try { os = res.getOutputStream(); bis = new BufferedInputStream(new FileInputStream(new File("L://test//" + fileName))); int i = bis.read(buff); while (i != -1) { os.write(buff, 0, buff.length); os.flush(); i = bis.read(buff); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } } @RequestMapping(value = "/testDownload4", method = RequestMethod.GET) public void Download4(HttpServletResponse res) { String fileName = "MyBatis源代码.zip"; res.setHeader("content-type", "application/octet-stream"); res.setContentType("application/octet-stream"); res.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buff = new byte[1024]; BufferedInputStream bis = null; OutputStream os = null; try { os = res.getOutputStream(); bis = new BufferedInputStream(new FileInputStream(new File("L://test//" + fileName))); int i = bis.read(buff); while (i != -1) { os.write(buff, 0, buff.length); os.flush(); i = bis.read(buff); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。