使用Node.js express 开发上传文件/图片api接口
我是傲夫靠斯,欢迎关注我的公众号【前端工程师的自我修养】,每天更新。
今天我们来搞一个Node.js Express的上传文件功能,我使用了busboy
这个库。
Busboy
是一个基于事件的文件流解析器,不仅限于Express框架使用,其他的任何文件流都能使用。它不存储文件,而是直接将文件写入到你提供的写入流。
使用Busboy
可以让我们的上传更加简单,接下来我们一步步搞起来。
Node.js express 上传文件/图片步骤
1.创建express应用项目
2.安装express、busboy依赖
3.写一个上传文件表单
4.创建文件接收处理服务
5.启动服务
6.测试服务是否正常工作
1.创建Express应用
执行下面命令来创建项目文件夹,初始化Node.js项目
mkdir express-upload-file
cd express-upload-file
npm init -y
2.安装Express、Busboy依赖
在命令行执行下面命令安装express
和busboy
依赖
npm install express
npm install busboy
3.创建上传文件表单
创建一个带有上传文件的input和一个submit按钮
// 用于上传文件表单
app.get('/', (req, res) => {res.send(`<!DOCTYPE html><html><body><form action="upload" method="post" enctype="multipart/form-data"><h1>选择上传的文件</h1> <input type="file" name="file"><input type="submit" value="上传"></form></body></html>`)
})
确保form具有enctype="multipart/form-data"
属性,并且为post请求,否则表单不能上传文件。很多刚刚接触前端的初学者很容易遇到这种坑。
4.创建server.js文件,处理接收文件
创建server.js
文件,创建uploads
文件夹用于存储上传的文件,引入express、busboy依赖,处理文件接收
const express = require('express')
const Busboy = require('busboy')
const path = require('path')
const fs = require('fs')var app = express();// 用于上传文件表单
app.get('/', (req, res) => {res.send(`<!DOCTYPE html><html><body><form action="upload" method="post" enctype="multipart/form-data"><h1>选择上传的文件</h1> <input type="file" name="file"><input type="submit" value="上传"></form></body></html>`)
})// 处理上传文件服务
app.post('/upload', (req, res) => {const busboy = new Busboy({ headers: req.headers });busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {const saveTo = path.join(__dirname, 'uploads', filename);file.pipe(fs.createWriteStream(saveTo));});busboy.on('finish', function () {res.send("文件上传成功");});return req.pipe(busboy);
});app.listen(3000, function () {console.log('服务启动成功:http://localhost:3000');
});
5.启动服务
修改package.json
文件,增加start
命令
{"name": "express-upload-file","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "node server"},"keywords": [],"author": "","license": "ISC","dependencies": {"busboy": "^0.3.1","express": "^4.17.1"}
}
运行下面命令,启动文件上传服务
npm start
# 服务启动成功:http://localhost:3000
6.测试上传文件
通过浏览器进行测试
通过Postman测试
可以看到无论通过哪种方式进行上传都会存储到uploads文件夹下。
到这我们的功能就算完成了。欢迎有什么问题留言私信。
源码:https://github.com/cmdfas/express-upload-file
更多干货内容,欢迎关注我的公众号【前端工程师的自我修养】,每天更新。
使用Node.js express 开发上传文件/图片api接口相关推荐
- node.js实现formdata上传文件
node.js实现formdata上传文件 1.关于formdata XMLHttpRequest Level 2 添加了一个新的接口--FormData.利用 FormData 对象,我们可以通过 ...
- node.js使用multiparty上传文件
multiparty使用:multiparty文档 https://www.npmjs.com/package/multiparty 下面介绍一下利用formData向后台提交图片的过程:写在前面的话 ...
- 微信小程序-云开发上传文件、图片
文章目录 一.前言 二.功能简介 1.选择微信聊天记录中的文件 2.选择本地相册/拍照图片 3.上传功能 三.实现代码 1.选择聊天文件函数(js) 2.选择相册函数(js) 3.上传文件函数(js) ...
- 七牛云 vue 图片上传简单解说,js 上传文件图片
七牛云 vue 图片上传简单解说,js 上传文件图片 一.七牛云简介 首次使用七牛云存储进行项目的图片存储,整了一上午才整明白,这些官方的教程把明白人也给说糊涂了,文档很不规范. 七牛云有免费的使用额 ...
- 公众号后台开发上传文件功能
微信公众号开发中, 上传文件是一个常用功能, 包括图片上传,视频,文件,附件,语音都要使用到这个. 今天的课程中, 介绍一个上传文件的类, 可以设置保存文件路径, 设置上传文件的类型- 公众号后台开发 ...
- JAVA上传文件图片到服务器保存
这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存! 首先是页面 html的 我这是提交一个文件和类型 <div style="border: 1px solid ...
- java上传文件图片到服务器保存,Java上传文件图片到服务器的方法
这里我记录一个比较简单方便操作的java上传文件图片到服务器并且保存,具体内容如下 首先是页面html的 我这是提交一个文件和类型 我是添加一张临时图片得到微信的media_id保存数据库! en ...
- html5封装图片,简单封装前端上传文件/图片
前言 最近项目会一直用到各种类型的上传文件的功能, 所以就基于elment-ui简单的做了一个封装, 比较好用 正文 引入 import TestUpload from '../components/ ...
- tp6 接口上传文件/图片报错 fopen(/www/wwwroot/***/public/storage/**failed to open stream: Permission denied
tp6 接口上传文件/图片报错 fopen(/www/wwwroot/***/public/storage/**failed to open stream: Permission denied 这是因 ...
最新文章
- Qt Installer Framework实战
- linux怎么运行exam,《 rh124-exam》linux练习
- python 解析xml
- 详解虚函数的实现过程之初探虚表(1)
- 【AS3代码】添加/删除XML子元素及属性
- centos有趣软件包_这5个软件包使学习R变得有趣
- python面试题总结(5)--数据类型(字典)
- js添加关闭功能_微信小程序开发之添加夜间模式功能
- vuecli3修改项目启动端口
- 如何设计出高端大气、有黑科技感的可视化大屏?
- 3.MongoDB uri中包含特殊字符与读策略配置
- java项目开发团队协作重要性_Java 项目开发团队有必要统一 IDE 吗?
- html5 微信 飞机 源码,[HTML5]微信飞机大战
- ora 01033 解决
- 内存卡格式化的原因有哪些 内存卡格式化怎么恢复
- primordials is not defined错误,正确的解决方案 亲测 完美 好用
- app版本更新提醒方案
- 『幽默』网络经典语录1600条~~(可累死我了)
- 自定义控件其实很简单5/12
- android 重复解绑服务,Android培训实战教程之多次解绑抛出异常原因