Express采坑系列之上传文件

封装文件上传工具multerUtil.js

创建util文件夹并在其下创建multerUtil.js

var  multer=require(‘multer‘);
var storage = multer.diskStorage({
    //设置上传后文件路径,uploads文件夹会自动创建。
       destination: function (req, file, cb) {
           cb(null, ‘./public/uploads‘)
      },
    /**
     * 给上传文件重命名,获取添加后缀名
     * 参数名 + 文件名 + 时间戳
     * */
     filename: function (req, file, cb) {
         var fileFormat = (file.originalname).split(".");

        //  返回文件名
         cb(null, file.fieldname + ‘_‘ + fileFormat[0] + ‘_‘ + Date.now() + "." + fileFormat[fileFormat.length - 1]);
     }
});
    //添加配置文件到muler对象。
    var upload = multer({
         storage: storage
   });

 //如需其他设置,请参考multer的limits,使用方法如下。
  //var upload = multer({
 //    storage: storage,
 //    limits:{}
 // });

//导出对象
module.exports = upload;

POST接口

var express = require(‘express‘);
var router = express.Router();
// 引入文件上传工具
var multer  = require(‘../util/multerUtil‘);

/* POST提交文件. */
// muilter.single(‘file’), //适用于单文件上传
// muilter.array(‘file’,num), //适用于多文件上传,num为最多上传个数,上传文件的数量可以小于num,
// muilter.fields(fields), //适用于混合上传,比如A类文件1个,B类文件2个
// 详细信息:http://cnodejs.org/topic/564f32631986c7df7e92b0db
router.post(‘/‘,multer.single(‘d‘), function(req, res, next) {

  /**
   * 获取参数
   */
  var query = req.body;
  /**
   * 获取文件
   */
  var file = req.file;

  console.log(‘post数据‘,query,file)

  res.send(‘hello , world‘);
});

module.exports = router;

原文地址:https://www.cnblogs.com/zhou195/p/8708837.html

时间: 2024-11-07 02:03:42

Express采坑系列之上传文件的相关文章

Express采坑系列之剥离路由

利用Express应用生成器生成的项目中所有路由的引用和使用都包含在app.js中 app.js是入口文件,过多的路由积压会使得入口文件过于臃肿,降低入口文件的可读性,因此需要将路由模块剥离出来,统一管理. 1.在routes文件夹下创建baseRoutes.js,同时创建一个方法并导出 2.将app.js文件中的路由拎进方法中 baseRoutes.js function baseRoute (app){ var indexRouter = require('./index'); var us

springcloud采坑--Zuul上传文件报java.nio.charset.IllegalCharsetNameException: UTF-8;boundary=sqgzzmMxl1UPdIp0IAYnQgUIAr9yNewVAzKIX

报错日志: 2018-12-17 10:01:19,688 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /xxx/app/bannerMaterialManager/uploadBannerSysGoodsPicture: java.nio.charset.IllegalCharsetNameException: UTF-8;boundary=sqgzzmMxl1UPdI

Express采坑系列之GET请求

首先我在app.js中允许了所有请求 // 允许所有的请求形式 app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next()

node.js express fs 获取已上传文件数据格式

{ "fieldName": "photo", "originalFilename": "1395130808991.jpg", "path": "tmpupload/25546-z8u01y.jpg", "headers": { "content-disposition": "form-data; name=\"photo\&

FTP文件操作之上传文件

上传文件是一个比较常用的功能,前段时间就做了一个上传图片的模块.开始采用的是共享文件夹的方式,后来发现这种方法不太好.于是果断将其毙掉,后来选择采用FTP的方式进行上传.个人感觉FTP的方式还是比较好用的,所以跟大家分享一下.   /// <summary> /// FTP上传文件 /// </summary> /// <param name="fileUpload">上传控件</param> /// <param name=&qu

PHP学习之上传文件一

1.is_uploaded_file图片是否存在在临时文件夹内 move_loaded_file移动临时文件到指定根目录下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x

安卓之上传文件,即HTTP提交表单

获取文件: public void Init()    {        noScrollgridview = (GridView) findViewById(R.id.noScrollgridview);        noScrollgridview.setSelector(new ColorDrawable(Color.TRANSPARENT));        adapter = new GridAdapter(this);        adapter.update1();      

php的表单提交之上传文件

首先创建含表单的html文件:upload.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>上传文件</title> </head> <body> <form action="upload.php" method="post"

代码安全之上传文件

上传数据包 从数据包中可以看出,验证文件类型的参数有:Content-Type.Filename.Filedata. 客户端JS验证 原理介绍 通过JS验证上传文件类型是最不安全的做法,因为这个方式是最容易被绕过的.我们先来看下JS实现文件检测的代码如下: 客户端JS验证通常做法是验证上传文件的扩展名是否符合验证条件. 绕过姿势 1 通过firefox的F12修改js代码绕过验证 2 使用burp抓包直接提交,绕过js验证 服务端MIME类型检测 MIME类型介绍 不同的文件类型有不同的MIME