【博学谷学习记录】超强总结,用心分享|【瑞吉外卖】文件的上传

目录

文件的上传

快速开始

前端实现

服务端实现​​​​​​​

乱码问题


2.必须采用multipart格式上传文件

3.type类型必须使用file

代码实例

<form method="post" action="/common/upload" enctype="multipart/form-data">
    <input name="myFile" type="file"  />
    <input type="submit" value="提交" /> 
</form>

服务端实现

在文件下载过程中,需要使用commons-fileupload.jar 

.jar 需要依赖 commons-io.jar 这个包,所以两个包我们都要引入。

pom.xml:

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>


1、常用API 

FileItemFactory      表单项工厂接口
 
 ServletFileUpload    文件上传类,用于解析上传的数据
 
 FileItem             表单项类,表示每一个表单项
 
 boolean ServletFileUpload.isMultipartContent(HttpServletRequest
   request)   判断当前上传的数据格式是否是多段的格式,只有是多段数据,才能使用该方式

public List<FileItem> parseRequest(HttpServletRequest request)    解析上传的数据,返回包含 表单项的 List 集合

boolean FileItem.isFormField()   判断当前这个表单项,是否是普通的表单项,还是上传的文件类型,true 表示普通类型的表单项;false 表示上传的文件类型

String FileItem.getFieldName()   获取表单项的 name 属性值

String FileItem.getString()       获取当前表单项的值;
 
String FileItem.getName()     获取上传的文件名

void FileItem.write( file )    将上传的文件写到 参数 file 所指向存取的硬盘位置

文件的下载简单代码实现

@PostMapping("/upload")
public R<String> upload(MultipartFile file){
    System.out.println(file);
    return R.success(fileName);
}

乱码问题

如果使用中文文件名,会导致乱码问题,这时需要在获取文件名之后为文件名进行编码

// 把中文名进行 UTF-8 编码操作。 
String str = "attachment; fileName=" + URLEncoder.encode("中文.jpg", "UTF-8"); 
// 然后把编码后的字符串设置到响应头中 
response.setHeader("Content-Disposition", str);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值