spring - 分块上传切割文件大小
问题描述
我正在使用 Spring Boot 后端来处理 POST 和 PATCH 请求。如果我不分块上传图像,它们就可以通过。但是,当我尝试使用分块时,文件大小会急剧减少。例如,如果我通过分块发送一个 2.3MB 的图像,并在服务器进程开始之前将文件记录到控制台,则 fileSize 属性是准确的,但是当 PATCH 请求通过时,upload-length 标头读取 23236,这是几个比我发送的图像小几个数量级。
如果我在字节通过时将它们写入文件,我仍然会得到一个图像,但它比原始图像小得多。
尝试处理图像时是否缺少步骤?这是我的 FilePond 设置:
var pond = FilePond.create(document.querySelector("input[type='file']"), {
// default crop aspect ratio
instantUpload: false,
// resize to width of 200
imageResizeTargetWidth: 200,
// open editor on image drop
imageEditInstantEdit: false,
chunkUploads: true,
chunkSize: 5000,
allowMultiple: true,
// configure Doka
imageEditEditor: doka,
server: {
url: 'http://localhost:3001/demo'
}
});
解决方案
imageResizeTargetWidth
将改变图像文件大小
此外,对于分块传输,Firepond 发送的第一个请求是
启动分块传输的 POST 请求(无文件),期望在响应正文中收到唯一的传输 id,它会在此请求中添加 Upload-Length 标头
github.com/pqina/filepond-docs/blob/master/content/patterns/API/
推荐阅读
- angular - 从输入字段中获取值并传递到路由器链接
- php - 如何使用 http 标头在页面之间传递变量?
- java - 我使用 servlet 和 JDBC 制作了一个用户验证程序,但它不起作用
- android - NoClassDefFoundError 与 Java 8 方法参考
- php - laravel 自定义请求验证 id
- kubernetes - 如何在部署配置中使用相对路径作为秘密 mountPath
- sql - 选择拥有 >1 名西班牙球员的球队
- javascript - 在我使用 tensorflow 的第一步中,模型似乎没有经过培训
- spring-boot - 无法从经理门户将战争文件部署到 Tomcat 服务器
- listview - 当 viewmodel 值发生变化时,如何更新列表视图?