我将数据存储在Azure上,并将 Content-Type 放在标题字段中,同时上传如下代码:
const headers: any = {
'Content-Range': contentRange,
'Content-Type': "image/svg+xml",
};
const responseData: any = await putChunk(url, chunks[currentChunkIndex].blob, headers);
以下是我创建blob并将其推入块数组的方法:
var blob = new Blob([file.slice(start, end)], { type: 'image/svg+xml' });
const chunk = new FileChunk(blob, file.size, start, end, file.name);
chunks.push(chunk);
下面是putChunk()函数,该函数仅发送一个PUT请求:
async function putChunk(url: string, data: any, headers: any): Promise<any> {
const options: any = {
method: 'PUT',
headers: headers,
body:
return await fetch(url, options);
}
无论将内容类型设置为什么,blob和chunk都始终将其重置为application / octet-stream。我想念什么?
答案 0 :(得分:2)
无论内容类型设置为什么,它总是重置为 应用程序/八位位组流。我想念什么?
问题是您要设置块的内容类型,而不是blob的内容类型。
要设置Blob的内容类型,您需要在您的Put Block List
请求中包含x-ms-blob-content-type
标头并将值设置为image/svg+xml
,然后您会看到正确的内容斑点的类型。