簡體   English   中英

Node js:如何獲取文件簽名頭而不是mime-type?

[英]Node js: How to get file signature headers instead of mime-type?

我為我的節點js項目下載了這個模塊,它似乎在一定程度上工作正常。 如果你是console.log(mime.lookup(pathToFile)); 它返回文件具有的正確文件類型。 問題是它檢查文件擴展名以獲取文件類型,而不檢查文件的前幾個字節(文件簽名頭)以實際獲得正確的文件類型。 所以,如果我有一個.png圖像,它會返回image/png但如果我只是將文件擴展名更改為類似.mp4則認為該文件是一個video/mp4 有沒有辦法安全地檢查它,以便某些用戶不只是上傳對服務器有害的東西? 也許另一個模塊? 謝謝!

嘗試使用文件類型

檢測Buffer / Uint8Array的文件類型

通過檢查緩沖區的幻數來檢測文件類型。

const readChunk = require('read-chunk'); // npm install read-chunk 
const fileType = require('file-type');
const buffer = readChunk.sync('unicorn.png', 0, 262);

fileType(buffer);
//=> {ext: 'png', mime: 'image/png'} 

它需要讀取前262個字節。 檢查頁面上支持的擴展名

暫無
暫無

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

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