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系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
jquery实现动态改变div宽度和高度
May 08 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
详解Node.js中的事件机制
Sep 22 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 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
escape unescape的php下的实现方法
2007/04/27 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php强制下载类型的实现代码
2011/04/21 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
独特的python循环语句
2016/11/20 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python画微信表情符的实例代码
2019/10/09 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
UGG英国官方网站:UGG UK
2018/02/08 全球购物
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
园林毕业生自我鉴定范文
2013/12/29 职场文书
客服专员岗位职责
2014/02/28 职场文书
先进事迹演讲稿
2014/09/01 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
Go gorilla/sessions库安装使用
2022/08/14 Golang