【发布时间】:2020-05-22 07:59:43
【问题描述】:
在我的 html 中,我有:
name="file" type="file"
accept=".csv"
在 ts 中:
我得到文件 - $event.target.files.item(0);
然后我将它传递给服务
uploadCSVFile( file) {
const uploadedFile = new FormData();
uploadedFile.append( 'file', file, file.name);
const url = `MyURL`;
return this.http.post(url, uploadedFile);
}
问题是它说 File must have a contentType text/csv 但是当我添加标题时 -
{headers: new HttpHeaders().append('Content-Type', 'text/csv')}
抱怨请求不是多部分的。
【问题讨论】:
-
在明确设置标头之前,是服务器要求“text/csv”,还是 Angular http 客户端?今天早上我正在做一些 csv 上传的东西,并且不必在我的请求上设置标题,而且你所拥有的看起来不错。我的意思是,也许服务器方法期待不同的东西?
-
@KurtHamilton 这是我从服务器收到的响应 - 文件必须有 contentType text/csv。请求头有: Content-Type: multipart/form-data;边界=----WebKitFormBoundaryh0fSoB1keNQolXCW 当我查看发送的 FormData 时,它有: Content-Type: application/octet-stream
-
愚蠢的问题,但它是一个实际的 csv 文件,而不是扩展名为 .csv 的 Excel 文件?我假设您在文本编辑器中打开文件时会看到原始 csv 内容?
-
@KurtHamilton 我尝试了很多文件——是的,原始内容。这是一个例子 - support.staffbase.com/hc/en-us/articles/…
-
我下载了一个文件,它们是分号分隔的,不是逗号分隔的。这是标题:
Username; Identifier;First name;Last name
标签: javascript angular api csv file-upload