我正在向Sharepoint发送一个包含文件的http请求。某些文件类型(如png或其他图像)已损坏且无法读取。当看这些时,我在头部看到额外的对象数据,例如
----------------------------826320949470377643449533
Content-Disposition: form-data; name="file"; filename="mypdf.pdf"
Content-Type: application/pdf
在底部:
----------------------------826320949470377643449533--
有没有办法防止这种情况发生?我使用的代码如下所示:
const contentType = mime.contentType(fileName);
const data = new FormData();
data.append('file',fs.createReadStream(path));
const fileSize = req.headers['content-length']
fs.promises.file(file)).size
const fileSizeLessByte = fileSize-1;
const contentRange = 'bytes 0-'+fileSizeLessByte+'/'+fileSize;
const contentLength = fileSize;
var config = {
method: 'put',
url: uploadUrl,
headers: {
'Content-Range': contentRange,
'Content-Length': contentLength,
'Content-Type': 'multipart/form-data'
},
data : data
};
发布于 2021-05-06 18:24:16
我最终能够通过使用readFileSync而不是FormData,而不是像O. Jones建议的那样使用多部分内容类型来实现这一点:
const contentType = mime.contentType(fileName);
const fileStream = fs.readFileSync(path);
const fileSize = Buffer.byteLength(fileStream);
const fileSizeLessByte = fileSize-1
const contentRange = 'bytes 0-'+fileSizeLessByte+'/'+fileSize;
const contentLength = fileSize;
const config = {
method: 'put',
url: uploadUrl,
headers: {
'Content-Type': contentType,
'Content-Range': contentRange,
'Content-Length': contentLength
},
data: fileStream
};
https://stackoverflow.com/questions/67400440
复制相似问题