JavaScript实现无刷新上传预览图片功能
发布时间 - 2026-01-11 02:36:28 点击率:次无刷新上传功能如何实现?手写无刷新上传要用到两个东西,FormData和FileReader。

FileReader 用于图片浏览。
FormData 用于ajax请求。
html代码
先创建表单跟图片的容器
<form enctype="multipart/form-data" id="oForm">
<input type="file" name="file" id="file" onchange="readAsDataURL()" />
<input type="button" value="提交" onclick="doUpload()" />
</form>
<div>
<img alt="" id="img"/>
</div>
javascript代码
FormData:
通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据, 因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输 的数据格式和表单通过submit() 方法传输的数据格式相同。
在这里FormData对象是用来获取form表单内的所有input数据,然后使用ajax请求发送数据到指定url,就不会出现表单提交时跳转的情况。
function doUpload() {
var formData = new FormData($( "#oForm" )[0]);
console.log(formData);
$.ajax({
url: 'pp',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
console.log(returndata);
},
error: function (returndata) {
console.log(returndata);
}
});
}
FileReader:
FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容, 使用 File 或 Blob 对象指定要读取的文件或数据。
在这里FileReader对象是用来获取file上来的图片并把图片转换成Data URL形式显示在事先创建的 容器中。
function readAsDataURL(){
//检验是否为图像文件
var file = document.getElementById("file").files[0];
if(!/image\/\w+/.test(file.type)){
alert("看清楚,这个需要图片!");
return false;
}else{
var reader = new FileReader();
//将文件以Data URL形式读入页面
reader.readAsDataURL(file);
reader.onload=function(e){
var result=document.getElementById("img");
//显示文件
result.src= this.result ;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js无刷新上传预览图片
# js无刷新上传图片
# js上传预览图片
# nodejs利用ajax实现网页无刷新上传图片实例代码
# PHP+JavaScript实现无刷新上传图片
# SpringMVC结合ajaxfileupload.js实现文件无刷新上传
# jsp+ajax实现无刷新上传文件的方法
# js实现头像图片切割缩放及无刷新上传图片的方法
# js动态创建上传表单通过iframe模拟Ajax实现无刷新
# asp.net+js 实现无刷新上传解析csv文件的代码
# asp.net javascript 文件无刷新上传实例代码
# javascript仿163网盘无刷新文件上传系统
# 表单
# 在这里
# 数据格式
# 上传
# 是用来
# 要用
# 它可以
# 跳转
# 你把
# 设置为
# 转换成
# 并把
# 机上
# 大家多多
# 如何实现
# 应用程序
# 更灵活
# 原始数据
# onchange
# file
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
用yum安装MySQLdb模块的步骤方法
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
如何基于PHP生成高效IDC网络公司建站源码?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
如何在云主机上快速搭建多站点网站?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何处理异常和错误?(Handler示例)
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
高防服务器租用首荐平台,企业级优惠套餐快速部署
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Laravel如何使用Eloquent进行子查询
Python文件流缓冲机制_IO性能解析【教程】
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何用西部建站助手快速创建专业网站?
三星、SK海力士获美批准:可向中国出口芯片制造设备
C#如何调用原生C++ COM对象详解
详解Oracle修改字段类型方法总结
详解jQuery中的事件
EditPlus中的正则表达式 实战(4)
简单实现Android文件上传
如何在IIS中配置站点IP、端口及主机头?
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何在阿里云购买域名并搭建网站?
Laravel Docker环境搭建教程_Laravel Sail使用指南
香港服务器部署网站为何提示未备案?
如何快速查询域名建站关键信息?
高端云建站费用究竟需要多少预算?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何配置任务调度?(Cron Job示例)
网页设计与网站制作内容,怎样注册网站?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何用PHP快速搭建高效网站?分步指南
Laravel如何使用模型观察者?(Observer代码示例)
js实现获取鼠标当前的位置
韩国服务器如何优化跨境访问实现高效连接?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel怎么自定义错误页面_Laravel修改404和500页面模板

