首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ReadStream中更改NodeJS文件名

在ReadStream中更改NodeJS文件名
EN

Stack Overflow用户
提问于 2018-12-29 15:31:09
回答 2查看 2.6K关注 0票数 3

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

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

代码语言:javascript
复制
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,而无需在我的服务器上重命名文件?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-12-29 16:50:33

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

代码语言:javascript
复制
let formData = {
        files: {
            value: fs.createReadStream(filePath),
            options: {
                filename: 'test.docx'
            }
        }
      };

为我解决了这个问题:)

票数 2
EN

Stack Overflow用户

发布于 2022-07-13 16:29:26

const FormData =需要量(‘form -data’);const表单=新的FormData();

form.append('file',fs.createReadStream(filepath),{filename:'newname'});

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53970855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档