話說我還是不建議 Node 服務器來儲存文件,我計算過服務器寬帶費用和CSDN一起使用比七牛云存儲還貴,所以我們還是用七牛; 我們前端把文件存到七牛后,然后把 url 發(fā)送到我們服務器。這樣解耦,費用也不高。
app.js
var fs = require('fs');
var express = require('express');
var multer = require('multer')
var app = express();
var upload = multer({
dest: 'upload/'
});
// 單圖上傳
//multer有single()中的名稱必須是表單上傳字段的name名稱。
app.post('/upload', upload.single('logo'), function(req, res, next) {
var file = req.file;
console.log('文件類型:%s', file.mimetype);
console.log('原始文件名:%s', file.originalname);
console.log('文件大小:%s', file.size);
console.log('文件保存路徑:%s', file.path);
res.send({
ret_code: '0'
});
});
app.get('/form', function(req, res, next) {
var form = fs.readFileSync('./form.html', {
encoding: 'utf8'
});
res.send(form);
});
app.listen(3000);
form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>上傳圖片</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<h2>單圖上傳</h2>
<input type="file" name="logo">
<input type="submit" value="提交">
</form>
</body>
</html>
- 運行服務。
- node app.js
- 訪問 http://127.0.0.1:3000/form ,選擇圖片,點擊“提交”,done。然后,你就會看到 upload 目錄下多了個圖片。