Изменение имени файла ReadStream в NodeJS - PullRequest
0 голосов
/ 29 декабря 2018

Я использую кодировщик / 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 налетать, не переименовывая файл на моем сервере?

Спасибо

1 Ответ

0 голосов
/ 29 декабря 2018

Вам необходимо изменить объект formData следующим образом:

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

Решил эту проблему для меня:)

...