解决HttpClient的FilePart上传文件中使用中文名称文件名乱码问题,我当时在网上找了一遍,网上都是
public class CustomFilePart extends FilePart {
public CustomFilePart(String filename, File file)
throws FileNotFoundException {
super(filename, file);
protected void sendDispositionHeader(OutputStream out) throws IOException {
super.sendDispositionHeader(out);
String filename = getSource().getFileName();
if (filename != null) {
out.write(EncodingUtil.getAsciiBytes(FILE_NAME));
out.write(QUOTE_BYTES);
out.write(EncodingUtil.getBytes(filename, "utf-8"));
out.write(QUOTE_BYTES);
直接用这个,传送过去的时候还是乱码,需要对其进行重写
下面是重写的代码
*解决中文文件名乱码
public class CustomFilePart extends FilePart {
public CustomFilePart(String filename, File file)
throws FileNotFoundException {
super(filename, file);
@Override
protected void sendDispositionHeader(OutputStream out) throws IOException {
out.write(CONTENT_DISPOSITION_BYTES);
out.write(QUOTE_BYTES);
out.write(EncodingUtils.getBytes(getName(), "utf-8"));
out.write(QUOTE_BYTES);
String filename = getSource().getFileName();
if (filename != null) {
out.write(EncodingUtil.getAsciiBytes(FILE_NAME));
out.write(QUOTE_BYTES);
out.write(EncodingUtil.getBytes(filename, "utf-8"));
out.write(QUOTE_BYTES);
重写后,上传的附件名才正确的显示出来
上传附件到法务系统返回的{
"code" : "0",
"msg" : "Success",
"errMsg" : "Success",
"timestamp" : "2020-03-24 11:39:14.423",
"data" : {
"fileId" : "1242294878479568897",
"fileSize" : "195294",
"fileName" : "重点强调:新员工入职(1).pdf"
解决HttpClient的FilePart上传文件中使用中文名称文件名乱码问题,我当时在网上找了一遍,网上都是public class CustomFilePart extends FilePart { public CustomFilePart(String filename, File file) throws FileNotFoundEx...
spring webflux 系列之 上传文件到七牛云篇(不用本地创建文件直接内存上传)
本次我介绍springboot 下 webflux 上传文件到七牛云;
网上基本上全部教程都是创建本地文件 才去上传七牛云 又要删除本地文件;
所以我直接放在内存里面 上传
代码如下:
//写法一:Mono<FilePart>
@PostMapping("/upload")
public Mono<Response> uploadFile(@RequestPart(val
<html>
<body>
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file"/>
<input typ
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import or...
form-data 文件的基本形式
1、请求体需分隔符:-----------------------------152909417026772332233306781192来组装。一个分隔符下一个请求参数。分隔符是随机的。
2、最后一个参附上文件描述和文件的字节流
3、以分隔符加--标记结尾: -----------------------------152909417026772
public class UploadConfig {
//显示声明CommonsMultipartResolver为mutipartResolver
@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
FilePart支持的文件类型包括:图像(JPG、PNG、GIF、BMP)、文档(DOC、DOCX、PPT、PPTX、XLS、XLSX、PDF)、音频(MP3、WAV、WMA)、视频(MP4、AVI、WMV)、网页(HTML、HTM)以及压缩文件(ZIP、RAR)。
在开发中,前端上传的文件流,在后台接口中通常是用MultipartFile类型的流格式接收,但是接收到的文件流往往不能满足我们的使用要求,我们需要转为File类型的文件流再去读取文件的宽高,大小等属性进行压缩上传等操作。本工具类为大家分享具体实现过程。接口规范:接收前端传的文件流,以及指定的目标压缩宽高,和压缩完需要上传到的指定目录。
首先封装一个动态生成文件目录的文件路径工具类
packa...
在使用 HttpClient 进行 post 请求时,出现中文乱码的问题,可能是因为在创建 StringEntity 对象时,没有指定字符集编码。可以尝试在创建 StringEntity 对象时,指定字符集编码为 UTF-8,例如:
StringEntity entity = new StringEntity(jsonStr, "UTF-8");
其中,jsonStr 为需要发送的 json 字符串。另外,还可以在创建 UrlEncodedFormEntity 对象时,指定字符集编码为 UTF-8,例如:
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(kvList, "UTF-8");