首页 > 其他分享 >文件上传和下载

文件上传和下载

时间:2022-10-18 21:11:46浏览次数:39  
标签:文件 String photo ResponseEntity new 上传 下载

1、文件下载

使用ResponseEntity实现下载文件的功能

@RequestMapping("/testDown")
public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws
IOException {
//获取ServletContext对象
ServletContext servletContext //获取服务器中文件的真实路径
String realPath = servletContext.getRealPath("/static/img/1.jpg");
//创建输入流
InputStream is = new FileInputStream(realPath);
//创建字节数组
byte[] bytes = new byte[is.available()];
//将流读到字节数组中
is.read(bytes);
//创建HttpHeaders对象设置响应头信息
MultiValueMap<String, String> headers = new HttpHeaders();
//设置要下载方式以及下载文件的名字
headers.add("Content-Disposition", "attachment;filename=1.jpg");
//设置响应状态码
HttpStatus statusCode = HttpStatus.OK;
//创建ResponseEntity对象
ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers,
statusCode);
//关闭输入流
is.close();
return responseEntity;
}= session.getServletContext();

2、文件上传

文件上传要求form表单的请求方式必须为post,并且添加属性enctype="multipart/form-data"

SpringMVC中将上传的文件封装到MultipartFile对象中,通过此对象可以获取文件相关信息

上传步骤:

a>添加依赖:

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --
>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

b>在SpringMVC的配置文件中添加配置:

<!--必须通过文件解析器的解析才能将文件转换为MultipartFile对象-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>

c>控制器方法:

@RequestMapping("/testUp")
public String testUp(MultipartFile photo, HttpSession session) throws
IOException {
//获取上传的文件的文件名
String fileName = photo.getOriginalFilename();
//处理文件重名问题
String hzName = fileName.substring(filefileName = UUID.randomUUID().toString() + hzName;
//获取服务器中photo目录的路径
ServletContext servletContext = session.getServletContext();
String photoPath = servletContext.getRealPath("photo");
File file = new File(photoPath);
if(!file.exists()){
file.mkdir();
}
String finalPath = photoPath + File.separator + fileName;
//实现上传功能
photo.transferTo(new File(finalPath));
return "success";
}
Name.lastIndexOf("."));

 

标签:文件,String,photo,ResponseEntity,new,上传,下载
From: https://www.cnblogs.com/ai377377/p/16804190.html

相关文章

  • xshell上传下载文件
    1:使用Xshell连接到Linux主机。2:确保Linux主机安装了lrzsz,如果没有通过下面的命令安装。yuminstalllrzsz3:向Linux主机拷贝文件。比如我想拷贝文件到scripts目录下面,先......
  • 更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)
    作者:Edison_G边缘检测是计算机视觉中的一个基本问题。近年来,卷积神经网络(CNNs)的出现极大地推动了这一领域的发展。现有的方法采用特定的深层CNN,但由于尺度和纵横比的变化,......
  • ubuntu的下载与测试
    31.用vim新建并打开一个名为hello.c的c语言文件2.在文件输入#include<stdio.h>intmain(){printf("helloworld!");return0;}3.运行4.1文件main1.c代码块......
  • Python项目生成requirements.txt文件
    一、前言对于Python项目,生成和使用requirements.txt是十分必要的。通过requirements.txt可以一次性保存和安装项目所需要的所有库。尤其是在不同电脑操作时。allure......
  • DIY(01)PLUS版——对多个txt文件进行汇总计算
     相对于第一版的计算进行了改进 第一版的思路是把每一个txt中的每一行提取出来,对每一行进行判断,存储进入对应的cell,最后进行公式计算;第二版的思路是把每一个txt中的......
  • 关于IDEA中Spring配置文件中的提示:File is included in 4 contexts.
    关于IDEA中Spring配置文件中的提示:Fileisincludedin4contexts.今天在学习SpringMVC框架的时候,由于web.xml中需要绑定Spring的配置文件,在配好Spring的配置文件并运行T......
  • 循环导入、文件类型、模块查找、包
    索引取值与迭代取值的差异l1=[11,22,33,44,55]1.索引取值 可以任意位置任意次数取值不支持无序类型的数据取值2.迭代取值 只能从前往后依次取值无法后退......
  • 断点Web-断点续传-大文件断点上传
    ​1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)1、1......
  • Microsoft Teams团队频道里共享文件弹出登录提示解决办法
    MicrosoftTeams团队频道里共享文件弹出登录提示解决办法一,情况员工从Teams里的团队频道打开共享文件时,该文件突然要求员工登录账号,即使登录账号后依然会弹出下一个,提示......
  • Manifest使用示例4 - Binarycaching使用缓存文件
    在多人开发环境中,我们仅希望一个人管理项目需要的所有第三方库,并使用服务器部署和分发vcpkg中已编译的库,此时可以使用vcpkg的Binarysource特性。VCPKG默认开启Binaryca......