/* * @Author: Johnhong9527 * @Date: 2019-06-05 11:10:09 * @Last Modified by: Johnhong9527 * @Last Modified time: 2019-06-10 16:47:55 * https://juejin.im/post/5a1a80a5f265da43333e1b88 */ var express = require('express'); var formidable = require('formidable'); var fs = require('fs'); var crypto = require('crypto'); // 引入json解析中间件 var bodyParser = require('body-parser'); var app = express(); // 添加json解析 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); // 允许所有的请求形式 /*app.all('*', function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Headers', 'Content-Type,Accept,X-Requested-With,traceid,rpcid'); res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS'); res.header('Content-Type', 'application/json;charset=utf-8'); next(); });*/ app.use('/public', express.static('public')); // 路由 app.get('/', function(req, res) { res.send('Hello World!'); }); app.post('/upload', function(req, res) { var form = new formidable.IncomingForm(); setTimeout(() => { // md5 form.parse(req, function(error, fields, files) { // console.log('parsing done'); // let fileMD5 = md5.update(new Date()).digest('hex'); // let fileType = files.upload_file.type.split('/')[1]; // let fileType = ; var md5 = crypto.createHash('md5'); var upload_file = files.upload_file; var fileMd5 = md5.update(upload_file.name + Date.parse(new Date()) / 1000).digest('hex'); var fileType = upload_file.type.split('/')[1]; var fileName = fileMd5 + '.' + fileType; fs.writeFileSync('public/' + fileName, fs.readFileSync(files.upload_file.path)); res.send({ status: 0, data: { uri: fileName, url: 'http://localhost:3333/public/' + fileName } }); }); }, 200); }); var server = app.listen(3333, function() { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); });