Узел.js-скачать и Сохранить PDF файл локально для оффлайн-файл поврежден
В настоящее время у меня есть настольное приложение, построенное с помощью Node Webkit. Когда пользователь находится в сети, приложение открывает PDF-файлы с сервера. Затем я сохраняю эти файлы локально, чтобы они были доступны в автономном режиме.
Я использую узел.файловая система js-это fs.writeFile (), чтобы сохранить PDF локально, но при попытке открыть его через приложение PDF пуст. Когда я пытаюсь открыть его прямо из папки, я получаю следующую ошибку.
Может кто-нибудь посоветовать?
//save PDF file for offline
function saveFile(pdfvar) {
var filename = 'test.pdf';
fs.writeFile(filename, pdfvar);
}
//open PDF in new window
$('#stage').on('click', '#pdflink', function(event){
var pdfvar = (this.getAttribute('data-pdffile'));
window.open(pdfvar, "_blank");
if(online===true){
saveFile(pdfvar);
}
});
1 ответ:
Вы держите все содержимое PDF в атрибуте элемента DOM
this.getAttribute('data-pdffile')
? Вот где он может испортиться.Когда вы звоните
window.open(pdfvar, "_blank");
Содержимое не готово к такому открытию. Он должен быть сначала преобразован в кодированный url base64.
window.open('data:application/pdf,' + escape(pdfvar));
Обновление:
Фактическая проблема заключалась в том, что OP пытался сохранить файл, используя его URL-адрес в "pdfvar"
fs.writeFile(filename, pdfvar);
Но созданный файл содержал только Сам URL. Что требовалось, так это сначала загрузить файл с помощью библиотеки http: