Не удалось загрузить документ PDF, NodeJs

0

Я пытаюсь загрузить pdf без подсказки, используя pdf, который уже присутствует в издевающихся тестовых данных. И я могу выполнить вышеуказанную задачу, используя приведенный ниже код. Но когда я пытаюсь открыть загруженный pdf, я получаю "Не удалось загрузить pdf-документ", что мне здесь не хватает. Помогите.

fs.readFile('./src/test-data/service/print/notes.pdf', function(error, content) {
    if (error) {
        res.writeHead(500);
        res.end();
    }
    else {
        res.writeHead(200, {
            'Content-Type': 'application/pdf',
            'Content-Disposition': 'attachment; filename=notes.pdf'
        });
        res.end(content, 'utf-8');
    }
});
Теги:
pdf

2 ответа

0
Лучший ответ

Это прекрасно работает.

var file = fs.createReadStream('./src/test-data/service/print/notes.pdf');
var stat = fs.statSync('./src/test-data/service/print/notes.pdf');
res.setHeader('Content-Length', stat.size);
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Disposition', 'attachment; filename=agreement.pdf');
file.pipe(res);
1

вы должны использовать res.download

function fileExist(fullpath) {
    try {
        return fs.statSync(fullpath).isFile();
    } catch (e) {
        return false;
    }
 }


var name = 'notes.pdf';
var filePath = './src/test-data/service/print/' + name;
if (!Files.Exist(filePath)) {
    console.log("file does't exist");
} else {
    res.download(filePath, name, function(err) {
        fs.unlink(filePath);
    });
}

если вы хотите сохранить файл после загрузки, замените строку

res.download(filePath, name, function(err) {
    fs.unlink(filePath);
});

от

res.download(filePath, name);

в угловом приложении используйте $ window.open(url, '_self');

  • 0
    Я получаю "ReferenceError: Файлы не определены" в моем приложении. Спасибо за ответ. Я нашел другой способ.
  • 0
    извините, я забыл функцию, я исправляю ее

Ещё вопросы

Сообщество Overcoder
Наверх
Меню