2016-03-22 27 views
0

私は、模擬テストデータの下に既に存在するpdfを使用して、プロンプトなしでpdfをダウンロードしようとしています。そして、私は上記のコードを使用して上記の作業を行うことができます。しかし、ダウンロードしたpdfを開こうとすると、私はここで不足しているものを「読み込みに失敗しました。あなたがファイルを保存したい場合はpdf文書NodeJsの読み込みに失敗しました

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'); 
    } 
}); 

答えて

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(filePath, name); 

によってライン

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

を置き換えるダウンロード後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); 
    }); 
} 

を使用する必要があります。 $ window.open(url、 '_self');を使用してください。

+0

私のアプリでは "ReferenceError:Files is not defined"と表示されています。ans.Isについてのご意見は別の方法で見つかりました。 – user1645290

+0

申し訳ありませんが、私は関数を忘れて、私はそれを修正します –

関連する問題