簡體   English   中英

使用Multer-如何讀取上載的文件(text / .csv)

[英]Using Multer - How do I read an uploaded file (text/.csv)

第一次使用Multer-我構建了一個應用程序來解析.csv文件,並計算文件中每個關鍵字和詞組的出現次數,但是我使用node進行了更改,並表示要解析該文件,然后再使用快速路由器和multer。

我有點困惑,因為我不再讀取文件,而是這樣:

{
[💻]   fieldname: 'file-upload',
[💻]   originalname: 'Google-Analytics.csv',
[💻]   encoding: '7bit',
[💻]   mimetype: 'text/csv',
[💻]   buffer: <Buffer 48 65 61 64 65 72 2c 53 75 62 2d 68 65 61 64 65 72 2c 54 61 67 2c 4b 65 79 77 6f 72 64 73 2c 54 65 73 74 69 6d 6f 6e 69 61 6c 0d 0a 54 75 72 6e 20 69 ... >,
[💻]   size: 2990
}

我認為我需要找到一些東西來處理緩沖區,因為Jimp處理從multer上傳的圖像。

TL; DR; 使用multer上傳時如何閱讀文本文件的內容?

我希望下面的答案能解決您的問題。

app.use(multer({
  dest: 'uploads/'
}));

app = express(); 

在請求處理程序中,您可以訪問以下文件詳細信息

 req.files 

例如,在輸入字段中的名稱是“ test”。 您可以按以下方式訪問文件詳細信息。

req.files.test
req.files.test.path

將為您提供文件的確切路徑。

所以你可以使用

let data = fs.createReadStream(req.files.test.path,'utf8');

那你可以看看

console.log(data);

配置Multer時,您應該指定上傳文件的用途

像這樣的東西:

var upload = multer({ dest: 'uploads/' })

然后,您可以使用節點文件系統從存儲中讀取文件

一種替代方法是直接訪問multer文件的Buffer對象。

默認情況下,在此對象上調用string會嘗試解析出UTF-8中的字符串。

例如:bufferByteArray.toString();

https://nodejs.org/api/buffer.html

用文件名附加上載文件的擴展名。

filename: function (req, file, cb) {
console.log("File Object",file);
let ext = '';
if(file.originalname.split('.').length >1 ){
ext = file.originalname.substring(file.originalname.lastIndexOf('.'));
}
console.log('ext', ext);
cb(null, file.fieldname + '-' + Date.now() + ext)
}

暫無
暫無

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

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