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中的107个基础知识收集整理 推荐
Mar 29 Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
Sep 09 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
May 02 Javascript
纯JS实现简单的日历
Jun 26 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
Vue实现多页签组件
Jan 14 Vue.js
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
使用数据库保存session的方法
2006/10/09 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
摘自启点的main.js
2008/04/20 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
js基于canvas实现时钟组件
2021/02/07 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
python的pip有什么用
2020/06/17 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
python 实现批量图片识别并翻译
2020/11/02 Python
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
自荐信格式范文
2013/10/07 职场文书
学生的自我鉴定范文
2013/10/24 职场文书
行政专员工作职责
2013/12/22 职场文书
会计专业自我鉴定
2014/02/10 职场文书
廉政教育的心得体会
2014/09/01 职场文书
公司授权委托书
2014/10/17 职场文书
2015年预算员工作总结
2015/05/14 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS