nodejs基于express实现文件上传的方法


Posted in NodeJs onMarch 19, 2018

本文实例讲述了nodejs基于express实现文件上传的方法。分享给大家供大家参考,具体如下:

前段时间在做个人项目的时候,用到了nodejs服务端上传文件,现在回头把这个小结一下,作为记录。

本人上传文件时是基于express的multiparty ,当然也可以使用connect-multiparty中间件实现,但官方似乎不推荐使用connect-multiparty中间件。废话不多说,下面看代码吧。

步骤:

(1)使用express创建项目,默认使用的是jade模板引擎,但是还是习惯于html,所以就改为html模板。
(2)在项目目录中,通过npm install multiparty进行安装必要组件。
(3)修改views/index.html,添加一个文件上传的form。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>上传文件</title>
</head>
<body>
  上传文件
  <form method='post', action='/file/uploading', enctype='multipart/form-data'>
    <input type="file" name="inputFile">
    <input type="submit" value="上传">
  </form>
</body>
</html>

(4)修改routes/index.js,实现上传页面和上传响应的后台代码。

var express = require('express');
var router = express.Router();
var multiparty = require('multiparty');
var util = require('util');
var fs = require('fs');
/* 上传页面. */
router.get('/', function(req, res, next) {
 //res.render('./views/index');
 res.sendfile('./views/index.html');
});
/* 上传 */
router.post('/file/uploading', function(req, res, next) {
  /* 生成multiparty对象,并配置上传目标路径 */
  var form = new multiparty.Form();
  /* 设置编辑 */
  form.encoding = 'utf-8';
  //设置文件存储路劲
  form.uploadDir = './public/files';
  //设置文件大小限制
  form.maxFilesSize = 2 * 1024 * 1024;
  // form.maxFields = 1000;  //设置所有文件的大小总和
  //上传后处理
  form.parse(req, function(err, fields, files) {
    var filesTemp = JSON.stringify(files, null, 2);
    if(err) {
      console.log('parse error:' + err);
    }else {
      console.log('parse files:' + filesTemp);
      var inputFile = files.inputFile[0];
      var uploadedPath = inputFile.path;
      var dstPath = './public/files' + inputFile.originalFilename;
      //重命名为真实文件名
      fs.rename(uploadedPath, dstPath, 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: filesTemp}))
  })
})
module.exports = router;

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodeJS微信分享
Dec 20 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 #NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 #NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 #NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 #NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 #NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 #NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 #NodeJs
You might like
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
php bootstrap实现简单登录
2016/03/08 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
js几个验证函数代码
2010/03/25 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
js实现密码强度检验
2017/01/15 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
小程序自定义日历效果
2018/12/29 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
爬山算法简介和Python实现实例
2014/04/26 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
python遍历数组的方法小结
2015/04/30 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
在双python下设置python3为默认的方法
2018/10/31 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
测试驱动开发的主要步骤是什么
2014/12/10 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
中学家长会邀请函
2014/01/17 职场文书
园艺师求职信
2014/04/27 职场文书
银行委托书范本
2014/09/28 职场文书
党员个人对照检查材料
2014/10/01 职场文书
2015年度保密工作总结
2015/04/24 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS