首先html页面写表单那一套
<form action="/users/upload" method="post" enctype="multipart/form-data">
<input type="file" name='pic'>
<input type="submit" value="上传">
</form>
这里有几点要注意:
1.action里的路径,是/users/upload,第一个/代表他的默认路径,之后是users文件,然后是文件中的自己写的路径upload,下边会看到
2.方法一定是post
3.后边这个enctype一定要加,一定要选择multipart/form-data
4.上传的
<input type="file" name="pic">
一定要加name,因为req.files中他有一个filedname属性,这个属性的value就是你写的name的value,所以必须写name才能看到具体内容
这里再提一句,req.files中有什么东西
当我们上传文件之后,我们的req.files中会出现该文件的各种信息,看图
包括他的路径,名字,fieldname等等属性
之后我们写users.js
var express = require('express');
var router = express.Router();
var fs= require('fs')
var multer = require('multer')
var upload=multer({dest:"uploadimg/"})
// 设置上传路径,dest:目的地 包括后面的uploadimg文件夹可以自己定义
//默认路径是整个项目文件夹,上传文件会上传至该目录,
// 如果该目录未创建,会自动创建该目录
// 上传文件
router.post('/uploadimg',upload.any(),function(req,res,next){
// 这有个upload.any()这个代表接收所有上传的文件,一定要有,不能省略
var des_dress='./uploadimg/'+req.files[0].originalname
/* 要将上传的文件保存在哪,上传路径+文件名称 */
// 之后用fs方法先读取文件,再写入文件
fs.readFile(req.files[0].path,function(err,data){
fs.writeFile(des_dress,data,function(err){
if(err){
throw err
}else{
res.send('成功')
}
})
})
})
module.exports = router;