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页面模板