gpt4 book ai didi

javascript - 在 NodeJS 中更改 ReadStream 的文件名

转载 作者:搜寻专家 更新时间:2023-11-01 00:49:40 26 4
gpt4 key购买 nike

我正在使用 thecodingmachine/gotenberg 将办公文档转换为 PDF 文件(gotenberg 使用的是 unoconv): Documentation

我有以下用 javascript 编写的代码(使用 NodeJS 库请求)将带有本地文件的请求发送到 gotenberg:

function openFile(file, fullPath) {
return new Promise((resolve, reject) => {
const filePath = pathModule.join(fullPath, file);

var formData = {
files: fs.createReadStream(filePath),
};

request.post({url:"http://docker:3000/convert/office", formData: formData}, function(err, httpResponse, body) {
if (err) {
reject('Upload failed!');
}
else {
resolve(body);
}
});
});}

当我向 gotenberg 发送一个英文名称的文件时,它有效。

但是当我尝试发送带有特殊字符的文件名时(用希伯来语编写:בדיקה.docx),gotenberg 失败并返回错误:

unoconv: non-zero exit code: exit status 1

这可能是因为 unoconv 不支持具有希伯来文文件名的文件。

有什么方法可以在不重命名我服务器上的文件的情况下,将文件的 ReadStream 中的文件名即时更改为 temp.docx 而不是 בדיקה.docx 之类的名称?

谢谢

最佳答案

您需要将 formData 对象更改为以下内容:

let formData = {
files: {
value: fs.createReadStream(filePath),
options: {
filename: 'test.docx'
}
}
};

为我解决了这个问题:)

关于javascript - 在 NodeJS 中更改 ReadStream 的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53970855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com