我正在使用 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/