Node.js + express实现上传大文件的方法分析【图片、文本文件】


Posted in Javascript onMarch 14, 2019

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

对于大文件的上传我们首先要引入一个叫做 multer 的库:

npm install --save multer

关于这个库,大家可以查阅官方文档:

点击跳转 https://www.npmjs.com/package/multer

我们先将库引入我们的项目中:

var multer = require('multer')
var upload = multer({ dest: 'uploads/' })// 文件会上传到这个目录

具体的 get 方法:

app.post('/upload', upload.single('logo'), function(req, res){//发送 json 数据到这个路由
  console.dir(req.file);
  res.send(req.p);
})

由于上传文件要用到表当,所以我们这里先建立一个名为 form 表单:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
  <form action="/upload" method="post" enctype="multipart/form-data">
    <h2>单图上传</h2>
    <input type="file" name="logo">
    <input type="submit" value="提交">
  </form>
<body>
</body>
</html>

然后我们在 server 中引入该表单:

var fs = require('fs')
// /from 的 html 界面,用于演示上传文件
app.get('/form',function(req, res){
  var form = fs.readFileSync('./form.html',{ encoding : "utf8"});
  res.send(form);
})

由 localhost:3000/form 运行后上传文件,就能在你项目的upload目录下可看到:

Node.js + express实现上传大文件的方法分析【图片、文本文件】

Node.js + express实现上传大文件的方法分析【图片、文本文件】

虽然上传成功,但w我n看到文件名是混乱的,而且路径也是固定:

修改路径和文件名:

// 更改大文件的存储路径
var createFolder = function(folder){
  try{
    fs.accessSync(folder);
  }catch( e ){
    fs.mkdirSync(folder);
  }
};
var uploadFolder = './upload/';// 设定存储文件夹为当前目录下的 /upload 文件夹
createFolder(uploadFolder);
// 磁盘存贮
var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, uploadFolder );// 他会放在当前目录下的 /upload 文件夹下(没有该文件夹,就新建一个)
  },
  filename: function (req, file, cb) {// 在这里设定文件名
    cb(null, file.originalname );
  }
})
var upload = multer({ storage: storage })

效果:

Node.js + express实现上传大文件的方法分析【图片、文本文件】

最后,这里是视屏连接方便大家学习:

https://www.bilibili.com/video/av24385038/?p=6

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

Javascript 相关文章推荐
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
Jan 24 Javascript
固定表格行列(expression)在IE下适用
Jul 25 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
vant中的toast层级改变操作
Nov 04 Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 #Javascript
Node.js + express基本用法教程
Mar 14 #Javascript
Vue渲染过程浅析
Mar 14 #Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 #Javascript
详解使用React制作一个模态框
Mar 14 #Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 #Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 #Javascript
You might like
用PHP制作静态网站的模板框架
2006/10/09 PHP
php按单词截取字符串的方法
2015/04/07 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
用jscript启动sqlserver
2007/06/21 Javascript
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
Python内置函数delattr的具体用法
2017/11/23 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
python版本五子棋的实现代码
2018/12/11 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
银行主办会计岗位职责
2014/08/13 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
实习护士自荐信
2015/03/25 职场文书
家长意见书
2015/06/04 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
创业计划书之美甲店
2019/09/20 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书