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 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
Javascript 网页水印(非图片水印)实现代码
Mar 01 Javascript
js图片延迟加载的实现方法及思路
Jul 22 Javascript
javascript 闭包详解
Feb 15 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
js+canvas实现动态吃豆人效果
Mar 22 Javascript
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
Jun 14 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 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 5.0 Pear安装方法
2006/12/06 PHP
PHP面向对象编程快速入门
2006/12/14 PHP
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php简单的上传类分享
2016/05/15 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
AngularJS的$location使用方法详解
2017/10/19 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
企事业单位求职者的自我评价
2013/12/28 职场文书
促销活动总结模板
2014/07/01 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
田径运动会广播稿
2015/08/19 职场文书
2019假期福利管理制度!
2019/07/15 职场文书