簡體   English   中英

檢查base64字符串是否包含有效的PDF-僅此而已

[英]Check if base64 string contains a valid PDF - and nothing else

在我的Web應用程序中,用戶只能上傳圖像和PDF。 這些是從前端到后端的base64字符串。 在那里,在Node.js 8.9服務器上,我想進行一些檢查,即測試我得到的base64字符串是否實際上只是圖像和PDF,而沒有其他內容。

對於圖像,這很容易。 使用帶有failOnError true的尖銳npm-module時,確實可以得到我想要的結果:base64字符串中的一個錯誤char會導致失敗,並且輸入將被拒絕。

但是,對於PDF,我找不到類似的解決方案。 我嘗試了pdf2json(無論如何我的需求似乎都過分了),但是在通過轉換為緩沖區傳遞base64字符串時失敗了。

我終於找到了一個N​​PM模塊,它完全符合我的期望:hummusJS。 就我的測試而言,以下代碼有效:接受有效的PDF,而拒絕無效的字符串。 到目前為止,沒有發現任何性能影響。

var hummus = require('hummus');

let pdfBase64String = '<<base64 string here>>';
let bufferPdf;
try {
  bufferPdf = Buffer.from(pdfBase64String, 'base64');
  const pdfReader = hummus.createReader(new hummus.PDFRStreamForBuffer(bufferPdf));
  var pages = pdfReader.getPagesCount();
  if(pages > 0) {
      console.log("Parsable with Hummus and more than 0 pages. Seems to be a valid PDF!");
  }
  else {
      console.log("Unexpected outcome for number o pages: '" + pages + "'");
  }
}
catch(err) {
   console.log("ERROR while handling buffer of pdfBase64 and/or trying to parse PDF: " + err);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM