关于ajax 异步文件上传 node 文件后台接口
<body>
<img src="" alt="" id="img">
<input type="file" name="myfile" size="50" id="file">
<script src='https://cdn.bootcss.com/axios/0.16.1/axios.min.js'></script>
//使用的axios库发起http请求
<script src='https://cdn.bootcss.com/jquery/3.3.0/jquery.min.js'></script>
<script>
$("#file").change(function () {
var file = $(this)[0].files[0]
//拿到上传文件的信息
//使用FormDate接口进行上传文件
var data = new FormData()
// console.log(file);
data.append("myfile", file)
axios.post('/files', data, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(res => {
// console.log(res.data.data)
$("#img").attr("src",res.data.data.url)
})
})
</script>
</body>
//后台文件接口代码 ,这里使用node 作为后台语言,使用node 强大的express框架。
const express=require('express')
//使用node 第三方包multer 进行文件上传
const multer=require('multer')
//对上传文件body里的内容进行解析
var bodyParser = require('body-parser');
const PORT=4520
const app=express()
//express.static web 静态服务器指定上传的文件
所放的目录,此处上传文件放在 imgs 文件夹下。
app.use('/files',express.static('imgs'))
app.use(bodyParser.urlencoded({ extended: false }));
//使用multer进行指定上传文件所放的目录。
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, path.join(__dirname,"imgs"))
},
//对上传文件进行命名
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + '.' +'jpg')
}
})
//使用multer进行文件上传
var file = multer({ storage: storage })
app.get('/',(req,res)=>{
res.sendFile(path.join(__dirname,'flie.html'))
})
app.post('/files',file.single('myfile'),(req,res)=>{
//上传图片的访问路径
const url=(`http://127.0.0.1:4520/files/${req.file.filename}`);
res.send({
status:200,
msg:"sucessful",
data:{
url
}
})
})
app.listen(PORT,()=>{
console.log(`服务器运行在${PORT}`);
})
关于ajax 异步文件上传 node 文件后台接口的更多相关文章
- SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库
SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库 /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...
- spring mvc文件上传(单个文件上传|多个文件上传)
单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包 1.所需jar包: commons-fileupload-1.3.1.jar ...
- struts2文件上传,文件类型 allowedTypes
struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
- webAPI文件上传时文件过大404错误的问题
背景:最近公司有个需求,外网希望自动保存数据到内网,内网有2台服务器可以相互访问,其中一台服务器外网可以访问,于是想在 这台服务器上放个中转的接口.后来做出来以后测试发现没有问题就放线上去了,不顾发现 ...
- maven工程 java 实现文件上传 SSM ajax异步请求上传
java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...
- 【文件上传】文件上传的form表单提交方式和ajax异步上传方式对比
一.html 表单代码 …… <input type="file" class="file_one" name="offenderExcelFi ...
- Javascript Fromdata 与jQuery 实现Ajax文件上传以及文件的删除
前端HTML代码: <!DOCTYPE html> <html> <head> <title>ajax</title> <script ...
- spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...
随机推荐
- 【开发工具】 使用 Postman 进行接口测试 (配置全局 token,JWT可用)
在前后端分离开发的项目中,使用postman来做接口测试会方便很多,然而因为JWT的鉴权,导致每半小时token都要更新一下,使测试变的很麻烦. 如果把token设置为全局变量,方便做测试,每次自动获 ...
- 部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
前面介绍了很多关于ABP框架的后台Web API 服务端,以及基于Vue+Element前端应用,本篇针对两者的联合部署,以及对部署中遇到的问题进行处理.ABP框架的后端是基于.net core5.0 ...
- 【题解】NOI 系列题解总集
每次做一道 NOI 系列的估计都很激动吧,对于我这种萌新来说( P1731 [NOI1999]生日蛋糕 练习剪枝技巧,关于剪枝,欢迎看我的垃圾无意义笔记 这道题是有一定难度的,需要运用各种高科技剪枝( ...
- CF1327F AND Segments
链接 Description 要求构造满足下列条件的长度为 \(n\) 的序列 \(a\) 的个数: 每个数值域在 \([0, 2 ^ k)\) \(m\) 个限制条件 \(l, r, x\),需要满 ...
- Java并发编程的艺术(六)——中断、安全停止线程
什么是中断 Java的一种机制,用于一个线程去暂停另一个线程的运行.就是一个正在运行的线程被其他线程给打断,停止运行挂起了. 我觉得,在Java中,这种中断机制只是一种方便程序员编写进程间的通信罢了. ...
- python学习之路 初识xml
import requests from xml.etree import ElementTree as ET r = requests.get('http://www.webxml.com.cn// ...
- modelViewSet 获取未序列化的数据
1 views/ perform_create 方法的使用 获取未序列化的数据 def perform_create(self, serializer): user_obj=serializer. ...
- masterha_check_repl --conf=/etc/mha/app1.cnf检查错误
[mysql@node3 ~]$ masterha_check_repl --conf=/etc/mha/app1.cnf Tue Jul 7 22:43:26 2020 - [warning] Gl ...
- KVM虚拟机网络
某一天,我的QEMU/KVM虚拟机在打开的时候,出现了以下错误: 查看default配置状态(命令是sudo virsh net-list -all,注意sudo,管理员用户登录的当我没说): 上图是 ...
- vue 属性绑定 v-bind
属性绑定 v-bind 可以通过v-bind将属性值与数据绑定,这样就可以统一化管理 通过这样我们就可以直接访问跳转到百度页面 同样的这个值我们也可以通过事件进行改变 这样就可以方便我们做一些其它的操 ...