100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Node.js中文件上传与multer模块的应用

Node.js中文件上传与multer模块的应用

时间:2018-10-12 18:07:16

相关推荐

Node.js中文件上传与multer模块的应用

必要:首先multer模块应用前提是在HTML的form表单

标签内设置属性enctype=”multipart/form-data”是必须的,这样才可以上传文件,方式为post。

<form action="/getdata" method="post" enctype="multipart/form-data">...</form>

其次 使用npm命令 下载multer模块:

$npm install multer -save

在项目js中 添加引用:

var multer = require('multer');var upload = multer({dest:'uploads/'});app.use(multer({dest:"./uploads"}).array("file"));

dest:目的地 包括后面的uploads文件夹可以自己定义 默认路径是整个项目文件夹

array()内是你要上传的file类型input标签的name名称

<input type="file" id="exampleInputFile" name="file">

我们回到路由中(默认index.js/user.js)把multer模块引用进去

var express = require('express');var router = express.Router();var multer = require('multer');var fs = require('fs');var path = require('path');var mysql = require('mysql')var upload = multer({ dest: 'uploads/' });

接下来我们一步一步的分析代码:

router.post('/getdata',function(req,res){//设置表单提交的路由地址,并且接收req/返回res给客户端的操作console.log(req.body);var name = req.body.name;var email = req.body.email;//post传输方法要用bodyconsole.log(req.files);var load=path.join(__dirname,'..');console.log(load);var fname=req.files[0].filename;//获取上传文件的名字var oname=req.files[0].originalname;//获取上传文件的原始名字

//var load=path.join(__dirname,'..');返回上一层的地址这里用变量load接收了

fs.readFile(load+'/uploads/'+fname,function(err,data){//文件上传后默认是一堆字符串的名字并且没有后缀名称的未知格式文件,这里我们要用req.files查看原始文件的数据并且读取,待读取成功后进行下一步操作console.log(data);fs.writeFile('./public/uploads/'+oname,data,function(err,data){//写入文件if(!err){

console.log('写入成功!')}else{console.log(err);}})})

//链接数据库并且写入数据内容(选看)var connection = mysql.createConnection({host:'127.0.0.1',user:'root',password:'root',database:'web5'})connection.connect(function(err){if(err){console.log(err)}});connection.query('insert into porject(name,email,files)values(?,?,?)',[name,email,oname],function(err,data){if(!err){res.render('getdata',{title:'文件已保存至服务器'})}})connection.end();})

不清楚可以下面留言交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。