ajax +NodeJS 实现图片上传实例
发布时间 - 2026-01-11 01:45:53 点击率:次前台用jquery的ajax发请求,后台用NodeJS 的multer模块实现图片上传。这个demo给我的感悟是一定要自己能实现出来,而不是看了别人写好就直接“拿来”用

note(注意)
大家先在public目录下创建一个名为uploads的文件夹,这个文件夹是用来保存你上传过的图片
安装multer模块:
npm i -S multer
code(代码)
1.app.js
const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();
//所有请求过来,都去项目当前的public目录下寻找所请求的文件,找到就返回
app.use(express.static('./public'));
//选择diskStorage存储
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, path.resolve('public/uploads'));
},
filename: function (req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname));//增加了文件的扩展名
}
});
const upload = multer({storage: storage});
app.post('/profile', upload.single('avatar'), function(req, res, next) {
res.send({
err: null,
//filePath:就是图片在项目中的存放路径
filePath: 'uploads/' + path.basename(req.file.path)
});
});
app.listen(3000, function () {
console.log("app is listening 3000 port");
});
2.index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
</head>
<body>
<form class="form-horizontal" enctype='multipart/form-data' method='post' action='javascript:;'>
<input type="file" id="choose"/>
<button onclick="handle()">上传</button>
<img class="newImg"/>
</form>
<script>
function handle() {
//获取上传的File对象,此处是一张图片对象
let file = document.getElementById("choose").files[0];
let formData = new FormData();
formData.append("avatar", file);//设置key为avartar,value为上述的File对象
$.ajax({
type: 'POST',
url: '/profile',
data: formData,
processData: false,
success: function (data) {
$(".newImg").attr("src", data.filePath);//上传成功则图片显示
},
error: function (err) {
console.log(err.message);
}
})
}
</script>
</body>
</html>
demo地址在这
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# NodeJS
# 实现图片上传
# ajax
# 图片上传
# node
# 上传图片
# node.js+Ajax实现获取HTTP服务器返回数据
# Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
# Node.js配合node-http-proxy解决本地开发ajax跨域问题
# Node.js获取前端ajax提交的request信息
# Ajax获取node服务器数据的完整步骤
# 上传
# 看了
# 目录下
# 在这
# 扩展名
# 先在
# 创建一个
# 都去
# 大家多多
# 好就
# 而不是
# 增加了
# 是用来
# file
# req
# resolve
# null
# cb
# diskStorage
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
教你用AI将一段旋律扩展成一首完整的曲子
怎样使用JSON进行数据交换_它有什么限制
Laravel如何实现一对一模型关联?(Eloquent示例)
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
python中快速进行多个字符替换的方法小结
如何用y主机助手快速搭建网站?
如何用腾讯建站主机快速创建免费网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
网站制作企业,网站的banner和导航栏是指什么?
如何打造高效商业网站?建站目的决定转化率
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
北京网站制作的公司有哪些,北京白云观官方网站?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
三星、SK海力士获美批准:可向中国出口芯片制造设备
昵图网官方站入口 昵图网素材图库官网入口
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何快速搭建高效WAP手机网站?
如何用AWS免费套餐快速搭建高效网站?
利用python获取某年中每个月的第一天和最后一天
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
中山网站推广排名,中山信息港登录入口?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
如何在搬瓦工VPS快速搭建网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何在云主机上快速搭建多站点网站?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
再谈Python中的字符串与字符编码(推荐)
Python3.6正式版新特性预览
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
详解Oracle修改字段类型方法总结
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
nodejs redis 发布订阅机制封装实现方法及实例代码
Laravel如何处理和验证JSON类型的数据库字段
Laravel如何处理表单验证?(Requests代码示例)
JavaScript如何实现类型判断_typeof和instanceof有什么区别
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
浅述节点的创建及常见功能的实现
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
iOS正则表达式验证手机号、邮箱、身份证号等
如何快速打造个性化非模板自助建站?
如何在Tomcat中配置并部署网站项目?
香港服务器如何优化才能显著提升网站加载速度?
微信小程序 input输入框控件详解及实例(多种示例)

