springboot实现文件下载和文件上传

标签: springboot fileupload filedownload
2人阅读 评论(0) 收藏 举报
分类:

1.文件上传功能:直接看controller

@PostMapping("/uploadFile")
public @ResponseBody String singleFileUpload(@RequestParam("file")MultipartFile file){

    //判断文件是否为空
    if(file.isEmpty()){
       return "文件为空,上传失败!";
    }
    try{
        //获得文件的字节流
        byte[] bytes=file.getBytes();
        //获得path对象,也即是文件保存的路径对象
        Path path= Paths.get(FILE_DIR+file.getOriginalFilename());
        //调用静态方法完成将文件写入到目标路径
        Files.write(path,bytes);
        return "恭喜上传成功!";
    }catch (IOException e){
        e.printStackTrace();
    }
    return "未知异常";
}

其中FILE_DIR是上传文件的路径,可以自己根据选择设置,比如我这里设置FILE_DIR="f://file//" 这个路径

2.文件上传的html页面

<form method="POST" action="/uploadFile" enctype="multipart/form-data">
    <input type="file" id="file_input"name="file" /><br/><br/>
    <input type="submit"  value="Submit" />
</form>

OK,到这里,文件上传功能已经实现,那么现在是文件下载功能

3.直接看文件下载的Controller

  @RequestMapping(value="/download",method = RequestMethod.GET)
    public void download( HttpServletResponse response){
        //要上传的文件名字
        String fileName="com.seven.xuanshang.apk";
        //通过文件的保存文件夹路径加上文件的名字来获得文件
        File file=new File(FILE_DIR,fileName);
        //当文件存在
        if(file.exists()){
            //首先设置响应的内容格式是force-download,那么你一旦点击下载按钮就会自动下载文件了
            response.setContentType("application/force-download");
            //通过设置头信息给文件命名,也即是,在前端,文件流被接受完还原成原文件的时候会以你传递的文件名来命名
            response.addHeader("Content-Disposition",String.format("attachment; filename=\"%s\"", file.getName()));
            //进行读写操作
            byte[]buffer=new byte[1024];
            FileInputStream fis=null;
            BufferedInputStream bis=null;
            try{
                fis=new FileInputStream(file);
                bis=new BufferedInputStream(fis);
                OutputStream os=response.getOutputStream();
                //从源文件中读
                int i=bis.read(buffer);
                while(i!=-1){
                    //写到response的输出流中
                    os.write(buffer,0,i);
                    i=bis.read(buffer);
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                //善后工作,关闭各种流
                try {
                    if(bis!=null){
                        bis.close();
                    }
                    if(fis!=null){
                        fis.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }

4.接下来是下载功能的html端的实现

<a href="/download">点击下载XX文件</a>
5.至此,文件的upload和download功能已经完成


查看评论

文件的上传与下载(备java基础,jsp,servlet,tomcat)

-
  • 1970年01月01日 08:00

SpringBoot实现文件上传下载的功能

SpringBoot我们大多数的时候是当做服务提供者来使用的,但是在一些场景中还是要用到一些文件上传下载这种"非常规"操作的。那么怎么在SpringBoot中实现文件的上传下载功能呢?想象一些我们在S...
  • zknxx
  • zknxx
  • 2017-05-23 01:00:12
  • 1997

SpringBoot文件上传和下载

Springboot文件上传下载
  • xqnode
  • xqnode
  • 2017-12-25 09:25:38
  • 278

SpringBoot上传文件实例下载

  • 2017年03月11日 17:51
  • 96KB
  • 下载

SpringBoot下文件上传与下载的实现

本文欢迎转载,转载请注明出处,谢谢~(作者:喝酒不骑马 Colton_Null) from CSDNSpringBoot后台如何实现文件上传下载?最近做的一个项目涉及到文件上传与下载。前端上传采用百...
  • Colton_Null
  • Colton_Null
  • 2017-08-05 00:40:23
  • 5137

spring boot实现文件上传下载以及多文件上传

spring boot实现文件上传下载以及多文件上传
  • m0_37770300
  • m0_37770300
  • 2017-04-27 20:57:03
  • 1181

SpringBoot实现文件上传

用SpringBoot实现服务器,然后用java和html5实现客户端进行上传测试。 一、服务器端接口程序。为省事就在controller中写了,正式的程序我喜欢放在service这一层进行处理调用...
  • xxkalychen
  • xxkalychen
  • 2017-09-04 22:14:46
  • 2890

SpringBoot SpringMVC实现文件下载

SpringBoot SpringMVC实现文件下载 @RequestMapping(value = "/download", method = RequestMethod.GET) R...
  • universsky2015
  • universsky2015
  • 2017-09-13 14:36:42
  • 948

Vue+SpringBoot实现前后端分离的文件上传

Vue+SpringBoot实现前后端分离的文件上传 这篇文章需要一定Vue和SpringBoot的知识,分为两个项目,一个是前端Vue项目,一个是后端SpringBoot项目。 后端项目搭建...
  • oppo5630
  • oppo5630
  • 2018-02-12 20:33:40
  • 966

springboot文件上传下载

文件上传下载是web服务经常使用的功能。但实际使用过程中,也有一些需要注意的地方。本文结合实际代码说明一下。 1.添加maven依赖: commons-fileupload comm...
  • PandaWang1989
  • PandaWang1989
  • 2017-08-20 16:09:05
  • 1326
    个人资料
    持之以恒
    等级:
    访问量: 1212
    积分: 264
    排名: 29万+
    文章存档