javascript - 如何从 multipart/form-data 正文请求中删除 Content-Type?
问题描述
我正在尝试将文件数组作为多部分/表单数据上传。我使用 ngx-file-upload v6.0.1
这是库示例中稍微改变的方法。我正在复制它以显示该文件的类型为 File。
public onFileAdded (files: UploadFile[]) {
for (const droppedFile of files) {
if (droppedFile.fileEntry.isFile) {
const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
fileEntry.file((file: File) => {
this.certificates$.next({
type: ACTIONS.ADD,
value: new Certificate(file, this.getSizeString(file.size), droppedFile.relativePath)
});
});
}
}
这是 onSubmit 方法:
public submitCertificates(certificates: Certificate[]): Observable<Certificate[]> {
const url = this.completionCertificatesUrl;
const headers = new HttpHeaders({'Content-Type': 'multipart/form-data'});
const formData = new FormData();
certificates.forEach(certificate => {
formData.append('files', certificate.file, certificate.relativePath);
})
return this.http.post<any>(url, formData, {headers}).pipe(
map(data => data)
);
发送的发布请求具有以下数据: 请求有效负载
问题是后端(我无法访问也无法理解的 Spring 框架)抛出 500 并且不接受此有效负载。有人告诉我正确的有效载荷应该是这样的:
Content-Type: multipart/form-data; boundary=79ab782d574b45598e6e50d722985144
--79ab782d574b45598e6e50d722985144
Content-Disposition: form-data; name="files"; filename="file-1.json"
content of file-1 file
--79ab782d574b45598e6e50d722985144
Content-Disposition: form-data; name="files"; filename="fil2-2.zip"
content of file-2 file
--79ab782d574b45598e6e50d722985144--
我的问题是如何从我的有效负载中删除“Content-Type”键?
我确实尝试了很多 append()、delete() 的组合,但没有结果。另外,我担心该文件是否真的附加到此请求中。我可以检查它吗?
我想知道我是否完全丢失了文件的内容,因为在我提供的示例中,有一行“file-1 的内容”,也许这是代表文件内容的更长字符串的快捷方式。请帮忙!
解决方案
我的问题是如何从我的有效负载中删除“Content-Type”键?
看看你设置的地方:
删除这一行:
const headers = new HttpHeaders({'Content-Type': 'multipart/form-data'});
headers
从此行中删除。
return this.http.post<any>(url, formData, {headers}).pipe(
推荐阅读
- c++ - 无法在 Ubuntu 16.04 上安装 levmar(C/C++ 中的 Levenberg-Marquardt 非线性最小二乘算法)
- c# - 从 C# 中的 datagridview 更新 sql 数据库
- python - 尝试使用 keras.utils.get_file() 加载数据时出错
- java - 将具有接口字段的类转换为 protobuf
- hive - Hive 中唯一行插入的约束
- c# - Unity raycast 未检测到之前已检测到的对象
- hadoop - 如何减少 Apache Flink 中 HIVE 数据摄取的延迟?
- python-3.x - 打印特定列。熊猫数据框
- angular - 来源 'http://localhost:4200' 已被 CORS 策略阻止(已添加代理)
- php - php-fpm 没有创建套接字