springboot 文件上传下载

关键点:

1,使用 POST 请求
2,consumes=MediaType.MULTIPART_FROM_DATA_VALUE
3,@RequestParm 里面的字符串和前端 input 控件的 name 值一致

上传文件示例:

@PostMapping(value="/photos", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public void addPhoto(@RequestParm("photo") MultipartFile imgFile) throws Exception{
    // 保存文件
    FileOutputStream fos = new FileOutputStream("target/", imgFile.getOriginalFilename());
    IOUtils.copy(imgFile.getInputStream(), fos);
    fos.close();

}

带返回值上传文件示例(返回二进制数据,让用户看到上传的图片长什么样):

@PostMapping(value="/icon", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public Byte[] addIcon(@RequestParm("photo") MultipartFile imgFile) throws Exception{
     // 用户上传文件的二进制数据
     InputStream is = imgFile.getInputStream();
     // 保存文件
     FileOutputStream fos = new FileOutputStream("target/", imgFile.getOriginalFilename());
     IOUtils.copy(is, fos);
     fos.close();
     // 返回文件
     return IOUtils.toByteArray(is);
    }

下载文件示例:

@GetMapping(value="/{userId}/photos", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public void getPhoto(@RequestParm("photo") MultipartFile imgFile) throws Exception{
       // 返回文件
       String userPhotoImgSrc = "src/test/10001.jpg";
       InputStream is = new FileInputStream(userPhotoImgSrc);
       return IOUtils.toByteArray(is);
}

原文地址:https://www.cnblogs.com/huanggy/p/9471845.html

时间: 2024-08-30 15:51:47

springboot 文件上传下载的相关文章

spring-boot-plus V1.2.1 发布 文件上传下载和静态资源访问

[V1.2.1-RELEASE] 2019.08.21 ?? New Features 文件上传保存到服务器指定目录 文件下载 访问上传的图片等资源 启用项目静态资源访问,可访问static/templates目录下资源 ?? Optimization static资源访问:http://localhost:8888/static/welcome.html templates资源访问:http://localhost:8888/templates/springbootplus.html 上传sw

java web 文件上传下载

文件上传下载案例: 首先是此案例工程的目录结构: 处理上传: FileUploadServlet.java 1 package fnz.fileUploadTest; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.PrintWriter; 7 import java.text.SimpleDateFormat; 8 import java.

使用Paramiko实现SSH登陆,文件上传下载

1,SSh登陆命令行实现: #!/usr/bin/env python # encoding: utf-8 import paramiko private_key_path = '/Users/aolens/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.Aut

文件上传下载—servlet API实现

servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.UUID; import javax.servl

文件上传下载

1.文件上传 文件上传下载本质是通过Socket的字节流来传输数据的.所以,对于文件上传,我们可以从HttpRequest对象获取输入流,进而获取上传文件的内容.但是采用ServletAPI并不能获取获取对应文件的字节流,而是获取整个Socket的字节流,里面包括提交的参数.上传文件内容以及其他附加信息. Servlet API上传文件,代码如下 protected void doPost(HttpServletRequest request, HttpServletResponse respo

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项目地址:http://www.51aspx.com/code/MSDCArtMengFileUpload 咨询qq:286275658 演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 服务器端运行效果图: 服务器端配置文件: <?xml version="1.

开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载

OkHttpPlus介绍 项目地址:https://github.com/ZhaoKaiQiang/OkHttpPlus 主要功能:OkHttp封装,支持GET.POST.UI线程回调.JSON格式解析.链式调用.小文件上传下载及进度监听等功能 为什么要写这么一个库呢? 首先,是因为OkHttp在4.4之后已经作为底层的Http实现了,所以OkHttp这个库很强大,值得我们学习. 其次,在我看来,OkHttp使用起来不如Volley方便,OkHttp的回调都是在工作线程,所以如果在回调里面操作V

.Net Core 图片文件上传下载

当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. 一.开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二.项目结构 FilesController 文件上传下载控制器 PictureController 图片上传下载控制器 Return_Helper_DG 返回值帮助类 三.关键代码 1.首先我们来看Startup.cs