找了不少文件上传的相关模块,最后选择了比较常用,并且是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小时内与您取得联系。