Express 版本:4.14.1

在Express中,文件上传需要用到multiparty中间件,在项目目录中,通过npm install multiparty –save进行安装必要组件。

前端HTML代码,用于上传文件:

<form action="/upload" method="post" enctype="multipart/form-data">
<input id="lefile" type="file" name="filenames" multiple="multiple" />
<input type="submit" class="btn btn-primary" value="submit" />
</form>

单文件处理


后台NodeJs代码, 用于接收文件:

router.post('/upload', function(req, res) {
//生成multiparty对象,并配置上传目标路径
var form = new multiparty.Form();
//设置编辑
form.encoding = 'utf-8';
//设置文件存储路径
form.uploadDir = "E:/";
//上传完成后处理
form.parse(req, function (err, fields, files) {
var filesTmp = JSON.stringify(files, null, 2);
if (err) {
console.log('parse error: ' + err);
} else {
console.log('parse files: ' + filesTmp);
var inputFile = files['filenames'][0];
//重命名为真实文件名
fs.renameSync(inputFile.path, form.uploadDir+inputFile.originalFilename, function (err) {
if (err) {
console.log('rename error: ' + err);
} else {
console.log('rename ok');
}
});
}
res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: filesTmp}));
});
});
module.exports = router;

多文件上传处理


//保存上传文件
files['filenames'].forEach(function(inputFile) {
//重命名为真实文件名
fs.renameSync(inputFile.path, form.uploadDir + projectName + "/" + inputFile.originalFilename,
function(err) {
if (err) {
console.log('rename error: ' + err);
} else {
console.log('rename ok');
}
});
});

获取参数值


此时,如果需要在上传文件的过程中获取post或者get参数,不能按照往常的做法,而是需要使用Multiparty中间件来获取,即在form.parse函数块中获取,如下所示:

form.parse(req, function (err, fields, files) {
projectName = fields['projectName'];
......

此处获取参数projectName的值。

参考:multiparty官方文档

在Express中使用Multiparty进行文件上传及POST、GET参数获取的更多相关文章

  1. zt对于C#中的FileUpload解决文件上传大小限制的问题设置

    对于C#中的FileUpload解决文件上传大小限制的问题设置 您可能没意识到,但对于可以使用该技术上载的文件的大小存在限制.默认情况下,使用 FileUpload 控件上载到服务器的文件最大为 4M ...

  2. 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载

    摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...

  3. 在express项目中使用formidable & multiparty实现文件上传

    安装 formidable,multiparty 模块 npm install formidable,multiparty –save -d 表单上传 <form id="addFor ...

  4. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  5. JAVA中使用FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  6. action中实现对批量文件上传的封装

    如今,文件(尤其是图片)上传,在前后台的应用相当普遍,上传头像.共享资料等已成为最基本应用.我们很希望通过一个万能的封装方法来实现一劳永逸的效果. 接下来,就来为大家介绍具体实现. 首先,我们需要一个 ...

  7. springboot中使用分页,文件上传,jquery的具体步骤(持续更新)

    分页: pom.xml     加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <arti ...

  8. SpringMVC中使用 MultipartFile 进行文件上传下载及删除

    一:引入必要的包 <!--文件上传--> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fil ...

  9. Spring中使用StandardServletMultipartResolver进行文件上传

    从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求,分别是:CommonsMultipartResolver和StandardSer ...

随机推荐

  1. PTA——模拟除法

    PTA 7-42 整除光棍 #include <stdio.h> int main() { ];//创建存表 ,count=; int n; ; scanf("%d", ...

  2. 07 Object类,Scanner,Arrays类,String类,StringBuffer类,包装类

    Object类的概述:* A:Object类概述    * 类层次结构的根类    * 所有类都直接或者间接的继承自该类* B:构造方法    * public Object()    * 子类的构造 ...

  3. (4)MySQL的外键(不同表之间的数据关联)

    问题:下列这张表中部门等列名下输入的数据没有约束,那么可以随便填写符合规则的数据但是不符合实际需求的值,这样就造成了不符合规则的数据在表中存在,外键就是为了解决这个问题,管理员可以在另一张表中设置好符 ...

  4. (11)线程池(最新的concurrent.futures包去开启)

    '''concurrent.futures是最新的开启线程池的包'''import timefrom concurrent.futures import ThreadPoolExecutor #开启线 ...

  5. emacs安装

    1.我选用的是Ubuntu16.04. 2.Ubuntu安装好之后不能直接sudo apt-get install emacs,因为Ubuntu的源默认是emacs24,最好是用最新的emacs25, ...

  6. 《DSP using MATLAB》Problem 7.2

    从别的书上找来的

  7. 使用patroni 构建高可用的pg 数据库

    patroni 是一个基于zk.etcd .consul 等的pg ha 模版,我们可以使用这个工具,快速的搭建一套 pg 的高可用方案 环境准备 mac 操作系统 安装基础差组件 brew inst ...

  8. css3新增内容

    1.css3边框 border-radius box-shadow border-image 2.背景 background-size background-origin 3.文本效果 text-sh ...

  9. http笔记汇总

    网上笔记参考: https://juejin.im/post/5b34e6ba51882574d20bbdd4#heading-8 http://dy.163.com/v2/article/detai ...

  10. JSBridge 知识点

    比较好的介绍文章: Android中JSBridge的原理与实现