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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
学习js所必须要知道的一些
Mar 07 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
Apr 11 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
Jun 22 Javascript
js实现随机点名小功能
Aug 17 Javascript
vue-cli项目代理proxyTable配置exclude的方法
Sep 20 Javascript
Nuxt使用Vuex的方法示例
Sep 06 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 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表单提交问题的解决方法
2011/04/12 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
PHP云打印类完整示例
2016/10/15 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python上下文管理器全实例详解
2019/11/12 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
在宿舍喝酒的检讨书
2014/09/28 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
庆六一开幕词
2015/01/29 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
道歉短信大全
2015/05/12 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书