全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

node文件上传功能简易实现代码

找了不少文件上传的相关模块,最后选择了比较常用,并且是express推荐使用的 multer 来实现文件上传,附上 GitHub 地址

1. 开始

开始第一步,自然就是安装模块,不多说

npm install multer --save

这里简单说一下,因为文件上传是用 post 方法提交数据,所以上传的单文件或者多文件会作为一个 body 体添加到请求对象中,我们可以通过 req.file 或者 req.files 查看上传后文件的相关信息。

以单文件上传为例,req.file 返回一个对象:

{
   "fieldname":"avatar",  #前端上传文件input的name
   "originalname":"Wx.php",  #本地文件名
   "encoding":"7bit",  #文件编码类型
   "mimetype":"text/php",  #文件类型
   "destination":"uploads/",  #上传根目录
   "filename":"1497286037422Wx.php",  #上传后文件名
   "path":"uploads/1497286037422Wx.php",  #文件路径
   "size":18174  #文件大小
}

该对象的 key 值是固定的,velue 值根据配置生成,用于实现相关逻辑

2. 实现

实现分两部分,前端和后端

前端

前端就是普通的写法,form 表单提交

<form action="/test/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="avatar">
  <input type="submit" name="提交">
</form>

切记,enctype="multipart/form-data" 这个属性一定要加上,否则后台接收不到文件。

后端

首先我们新建配置文件,upload.js

// upload.js

var multer = require('multer');  # 引入模块

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, Date.now()+file.originalname)
  }
})

var upload = multer({ storage: storage })

module.exports = upload;

diskStorage方法相当于创建一个磁盘存储引擎,配置文件上传路径,文件名等,可控性更高。

destination  # 设置文件上传路径
filename    # 重命名文件

然后新建路由接收文件,file.js

// file.js 

var express = require('express');
var router = express.Router();

// 引入配置文件
var upload = require('../config/upload');

router.post('/upload', upload.single('avatar'), function(req, res, next) {
  res.send(req.file);
});

module.exports = router;

file.js 中 upload.single() 方法表示接受单文件,常用的有

upload.single(fname);  // 接收单文件
upload.array(fname[, maxCount])  //接收多文件,maxCount表示接收最大数量

fname 是前端 <input type="file" name="fname"> 的 name 值

基本的上传文件方法就这些了,当然还有很多的配置参数之类的设置,要参考 GitHub 说明,地址在开头,需要者自行查阅

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# node  # 文件上传  # nodejs  # nodejs实现文件上传  # 在Node.js中使用HTTP上传文件的方法  # Node.js实现文件上传  # NodeJS使用formidable实现文件上传  # nodejs+express实现文件上传下载管理网站  # Node.js模拟浏览器文件上传示例  # node.js文件上传处理示例  # Node.js实现兼容IE789的文件上传进度条  # Nodejs实现文件上传的示例代码  # 上传  # 配置文件  # 上传文件  # 后端  # 推荐使用  # 我们可以  # 更高  # 相关信息  # 找了  # 作为一个  # 为例  # 多说  # 表单  # 来实现  # 还有很多  # 创建一个  # 两部分  # 大家多多  # 重命名 


相关文章: 成都品牌网站制作公司,成都营业执照年报网上怎么办理?  制作电商网页,电商供应链怎么做?  高防服务器租用指南:配置选择与快速部署攻略  如何零基础开发自助建站系统?完整教程解析  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站为何优先选择香港服务器?  小建面朝正北,A点实际方位是否存在偏差?  网站制作需要会哪些技术,建立一个网站要花费多少?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  已有域名和空间,如何快速搭建网站?  如何快速搭建高效可靠的建站解决方案?  建站主机选虚拟主机还是云服务器更好?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何配置FTP站点权限与安全设置?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  威客平台建站流程解析:高效搭建教程与设计优化方案  html制作网站的步骤有哪些,iapp如何添加网页?  如何通过多用户协作模板快速搭建高效企业网站?  如何快速搭建虚拟主机网站?新手必看指南  微课制作网站有哪些,微课网怎么进?  建站之星代理如何优化在线客服效率?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  兔展官网 在线制作,怎样制作微信请帖?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星安装后如何自定义网站颜色与字体?  如何在万网自助建站平台快速创建网站?  建站之星logo尺寸如何设置最合适?  制作网站的公司有哪些,做一个公司网站要多少钱?  建站之星如何优化SEO以实现高效排名?  如何选择适合PHP云建站的开源框架?  如何用IIS7快速搭建并优化网站站点?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  ,南京靠谱的征婚网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何在建站之星绑定自定义域名?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  ,网站推广常用方法?  浅析上传头像示例及其注意事项  建站org新手必看:2024最新搭建流程与模板选择技巧  网站制作公司排行榜,抖音怎样做个人官方网站  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站之星代理如何获取技术支持? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。