全站开发总结

全站开发博客之画集的照片上传

一、multer的用法:

首先把中间件multer引进来

const  multer =require('multer');

const objmulter=multer({dest:'./public/images'});确认文件保存的位置。

app.use(objmulter.any());接受多个文件,也可以用single接受一个

******注意提交表单的时候,form表单要加一个标签enctype="multipart/form-data",input用的type也是file

二、处理照片名字(不能直接用传过来的名字,因为多个用户传输的照片名字可能一样)

const path=require('path');

const fs=require('fs');

首先调用上述的模块

var oldpath=req.files[0].path;

//传过来的文件在req.files里面,是个数组、里面有原始名字,后缀,名字前面的部分为path。

 var ext=path.parse(req.files[0].originalname).ext;

//用的是path里面的方法,解析一下,得到原始名称的后缀。

  var newpath=oldpath+ext;

  var newfilename='images/'+req.files[0].filename+ext;

  fs.rename(oldpath,newpath,(err)=>{          //fs里面的重命名,只有重命名成功才能存进去,不然没意义。

    if(err){

      res.status(500).send('file opration error').end();

    }else{

存入数据库.......

    }

********注意加入的照片可能存入数据库了,但是在页面不显示。可能是目录的问题,在新的名字加上文件夹目录即可。

你可能感兴趣的:(全站开发总结)