详解nodejs实现本地上传图片并预览功能(express4.0+)
发布时间 - 2026-01-11 02:05:24 点击率:次Express为:4.13.1 multyparty: 4.1.2

代码主要实现本地图片上传到nodejs服务器的文件下,通过取图片路径进行图片预览
写在前面:计划实现图片上传预览功能,但是本地图片上传所获得路径为 C:\fakepath\"+文件名的形式,得不到文件真实路径,所以无法直接预览,于是采用将图片上传至服务器,传回服务器路径,实现预览。前端采用通过ajax方式上传文件,使用FormData进行ajax请求 ,nodejs端采用multiparty模块
相关查看文档:
通过Ajax方式上传文件,使用FormData进行Ajax请求
node-multiparty github
FormData - Web APIs | MDN
部分代码:
<form name='picForm' action = "javascript:;"method="post" encype = "multipart/form-data" > <input type="file" id="test" id="j_imgfile"> </form> <div> <img src="" id="j_imgPic"> </div>
js中采用change事件,即当选完图片时就发送ajax请求
$('#j_imgfile').on('change',function(){
// 判断上传文件类型
var objFile = $('#j_imgfile').val();
var objType = objFile.substring(objFile.lastIndexOf(".")).toLowerCase();
var formData = new FormData(document.forms.namedItem("picForm"));
console.log(objType);
if(!(objType == '.jpg'||objType == '.png'))
{
alert("请上传jpg、png类型图片");
return false;
}else{
$.ajax({
type : 'post',
url : '/uploadUserImgPre',
data: formData ,
processData:false,
async:false,
cache: false,
contentType: false,
success:function(re){
re.imgSrc = re.imgSrc.replace('public','');
re.imgSrc = re.imgSrc.replace(/\\/g,'\/');
$('#j_imgPic').attr('src',re.imgSrc);
},
error:function(re){
console.log(re);
}
});
}
});
nodejs app.js里代码
app.post('/uploadUserImgPre',routes.users.uploadUserImgPre);
routes/users.js 里代码
exports.uploadUserImgPre = function(req, res, next) {
//生成multiparty对象,并配置上传目标路径
var form = new multiparty.Form({uploadDir: './public/files/images'});
form.parse(req, function(err, fields, files) {
var filesTmp = JSON.stringify(files);
if(err){
console.log('parse error: ' + err);
} else {
testJson = eval("(" + filesTmp+ ")");
console.log(testJson.fileField[0].path);
res.json({imgSrc:testJson.fileField[0].path})
console.log('rename ok');
}
});
}
部分说明:
文件上传至服务器后 路径path变为:public\files\images\W-jy9YsxsPjNpQHslzGvdXBk.jpg
由于在app.js中设置过public为默认路径,所以整理地址时需要去掉public,并且把‘\'变成‘/'
app.use(express.static(path.join(__dirname, 'public')));
最后效果大概是这样的,html部分不一样~我的是jade模板,还有css什么的,并木有列出来
点击空白处,上传图片,接下来的功能就是点击上传把地址放到数据库里~(这个功能还木有做呢)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# nodejs上传图片
# nodejs
# express上传图片
# nodejs上传图片预览
# node+axios实现服务端文件上传示例
# 利用node+koa+axios实现图片上传和回显功能
# 详解Vue+axios+Node+express实现文件上传(用户头像上传)
# nodejs+express实现文件上传下载管理网站
# nodejs基于express实现文件上传的方法
# Nodejs+express+html5 实现拖拽上传
# 基于nodejs+express(4.x+)实现文件上传功能
# 使用express+multer实现node中的图片上传功能
# 使用nodejs+express实现简单的文件上传功能
# Ajax异步文件上传与NodeJS express服务端处理
# Nodejs进阶:基于express+multer的文件上传实例
# NodeJS实现图片上传代码(Express)
# node+express+axios实现单文件上传功能
# 上传
# 图片上传
# 上传文件
# 传至
# 的是
# 是这样
# 要去
# 时就
# 上传图片
# 大家多多
# 时需
# 库里
# 空白处
# 文档
# 写在前面
# id
# file
# j_imgfile
# div
# test
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何用花生壳三步快速搭建专属网站?
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何解决hover在ie6中的兼容性问题
C++时间戳转换成日期时间的步骤和示例代码
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
智能起名网站制作软件有哪些,制作logo的软件?
如何快速建站并高效导出源代码?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何快速搭建高效WAP手机网站?
Android okhttputils现在进度显示实例代码
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
详解Huffman编码算法之Java实现
Laravel观察者模式如何使用_Laravel Model Observer配置
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
文字头像制作网站推荐软件,醒图能自动配文字吗?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
网易LOFTER官网链接 老福特网页版登录地址
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
如何快速配置高效服务器建站软件?
Android利用动画实现背景逐渐变暗
php json中文编码为null的解决办法
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
中山网站制作网页,中山新生登记系统登记流程?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
进行网站优化必须要坚持的四大原则
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何注册花生壳免费域名并搭建个人网站?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel如何自定义分页视图?(Pagination示例)
怎样使用JSON进行数据交换_它有什么限制
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何在七牛云存储上搭建网站并设置自定义域名?
如何在局域网内绑定自建网站域名?
JavaScript如何实现错误处理_try...catch如何捕获异常?
如何快速搭建虚拟主机网站?新手必看指南
中国移动官方网站首页入口 中国移动官网网页登录
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何处理文件下载请求?(Response示例)
北京的网站制作公司有哪些,哪个视频网站最好?
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
手机软键盘弹出时影响布局的解决方法

