博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 上传、下载(四)
阅读量:5845 次
发布时间:2019-06-18

本文共 4259 字,大约阅读时间需要 14 分钟。

 

工程目录结构

 

完整代码:

 

1、pom.xml

首先当然是添加依赖,用到thymeleaf模板渲染html页面

4.0.0
com.hello
HelloBoot
0.0.1-SNAPSHOT
jar
UTF-8
org.springframework.boot
spring-boot-starter-parent
2.0.1.BUILD-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
spring-snapshots
Spring Snapshots
https://repo.spring.io/libs-snapshot
true

 

如果遇到<parent>标签报错,看看和上面写的有出入吗---

 

2、application.properties

只有一行,关闭thymeleaf缓存

spring.thymeleaf.cache=false

 

 

3、file.html 页面

Insert title here

文件上传

下载

 

 

4、HelloController.java  控制类

 

package com.hello;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.OutputStream;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;@Controllerpublic class HelloController {    //映射视图    @RequestMapping("/file")    public String file() {        return "/file";    }        //上传    @RequestMapping("fileUpload")    @ResponseBody    public String fileUpload(@RequestParam("filename") MultipartFile file) {        if(file.isEmpty()) {            return "false";        }        //将里面内容移动到目标文本文档        File dest = new File("D:/test.txt");        try {            file.transferTo(dest);         } catch (IllegalStateException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return "success";    }    //下载    @RequestMapping("fileDownload")    @ResponseBody    public String fileDownload(HttpServletResponse res) {        String fileName = "1.jpg";        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();            //获取zhi'ding            bis = new BufferedInputStream(                    new FileInputStream(new File("D:/1.jpg")));            int i = bis.read(buff);            while(i != -1) {                //每次读取1024字节,就flush输出                os.write(buff, 0, buff.length);                os.flush();                //然后继续读取下一个1024字节                i = bis.read(buff);            }                    } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {              if (bis != null) {                  try {                    bis.close();                  } catch (IOException e) {                    e.printStackTrace();                  }                }        }        return "success";    }        }

 

 

(1)file()方法return返回的是视图“file.html”,使用@Controller修饰类即可

(2)上传业务方法fileUpload(),return返回的是个字符串——“false“或”success”,不是html视图页面,所以不用渲染视图,

这里使用@Controller修饰类    和    @ResponseBody修饰方法

 

5、启动类App.java

package com.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }}

 

转载于:https://www.cnblogs.com/Donnnnnn/p/8611514.html

你可能感兴趣的文章
java读取properties配置文件
查看>>
C/C++语言经典著作
查看>>
分布式文件系统之MogileFS实现
查看>>
qtcreator 错误error:stray'\243'in program
查看>>
工作之命令小总结(7):tail命令
查看>>
LVS+keepalived负载均衡
查看>>
YII分页显示数据
查看>>
Android下获取状态栏的高度
查看>>
Start Developing iOS Apps Today系列(六)
查看>>
UITableview中cell重用引起的内容重复的问题
查看>>
stm32 ADC使用 单通道 多通道
查看>>
Windows服务器配置与管理
查看>>
UVA 10003 Cutting Sticks
查看>>
DRP项目总结
查看>>
图的连通性——无向图的连通分量和生成树
查看>>
Linux安装更新JDK
查看>>
VM10.0上创建Windows server 2008 SP2,并且,安装loadrunner11
查看>>
抽象工厂
查看>>
linux下高可用mysql
查看>>
(15)Reactor 3 Operators——响应式Spring的道法术器
查看>>