express上传图片

1.用express生成器生成文件项目 express+文件名+--view=ejs
2.更改文件后缀名:
添加两行代码+更改views文件中的文件后缀名.html

 app.engine(“.html”,require(“ejs”).__express);   
 app.set('view engine', 'html');

3.设置自动重启服务器

"scripts": {
  "start": "supervisor ./bin/www"       
},

4.在app.js中
4-1.单文件上传:

4-1-1.引入文件

var multer = require('multer');
var fs = require("fs");

4-1-2.设置字段并设置文件存储的位置

app.use(multer({ dest: 'public' }).array('image'));

4-1-3.改文件的名字---添加后缀名

app.get("/upload",(req,res)=>{
res.render})

app.post("/upload",(req,res)=>{
    var file = req.files[0];
               // multer插件 自动帮你算出一个名称 算法在里面
    var oldPath = "public/"+file.filename;
    var newPath = "public/"+file.filename +".jpg";
        fs.rename(oldPath,newPath,(err,data)=>{
            if(err){
                console.log("修改名称失败");
                res.send("上传成功 修改失败");
            }else {
                console.log("修改成功");
                res.send("上传加修改名称成功");
            }
        })                                                                                                                                           
}

4-2.多文件上传【res.send不可以输出多次】
在html文件中添加 multiple="true"
4-2-1.同步上传
只需要更改第三步,通过for来循环改变文件名

app.get("/upload",(req ,res)=>{res.render})
app.post("/upload",(req,res)=>{     
    for(let i=0;i

4-2-2.异步上传

for(let i=0;i{
        if(err){
            res.send("上传成功,修改失败")
        }else{
            parseFile();
        }
    });
}
parseFile();                                                                                                                                        
}

你可能感兴趣的:(express上传图片)