[英]Changing filename of a ReadStream in NodeJS
我正在使用 thecodingmachine/gotenberg 將辦公文檔轉換為 PDF 文件(gotenberg 正在使用 unoconv):文檔
我有以下用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:非零退出代碼:退出狀態 1
這可能是因為 unoconv 不支持具有希伯來文文件名的文件。
有什么方法可以將文件的 ReadStream 中的文件名更改為類似 temp.docx 而不是 בדיקה.docx 之類的東西,而無需在我的服務器上重命名文件?
謝謝
您需要將 formData 對象更改為以下內容:
let formData = {
files: {
value: fs.createReadStream(filePath),
options: {
filename: 'test.docx'
}
}
};
為我解決了這個問題:)
const FormData = require('form-data'); 常量形式 = 新的 FormData();
form.append('file', fs.createReadStream(filepath), {filename: 'newname'} );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.