JS+HTML5实现上传图片预览效果完整实例【测试可用】


Posted in Javascript onApril 20, 2017

本文实例讲述了JS+HTML5实现上传图片预览效果。分享给大家供大家参考,具体如下:

在项目中遇到用input标签file类型的文件上传,想实在上传之前进行图片的预览功能;之前的做的一个解决方案是文件先上传上去然后返回地址再显示在页面上,这样就不太好,因为用户基本信息可能并没有保存,但是头像却已经改变,如果在需要改变就导致了多余图片的保存服务器。

在网上找了下解决方案,如下所示:

<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  <title>html5 图片上传预览</title>
  <style>
    #preview {
      width: 300px;
      height: 300px;
      overflow: hidden;
    }
    #preview img {
      width: 100%;
      height: 100%;
    }
  </style>
  <script src="jquery-1.7.2.min.js"></script>
  <script type="text/javascript">
    function preview1(file) {
      var img = new Image(), url = img.src = URL.createObjectURL(file)
      var $img = $(img)
      img.onload = function() {
        URL.revokeObjectURL(url)
        $('#preview').empty().append($img)
      }
    }
    function preview2(file) {
      var reader = new FileReader()
      reader.onload = function(e) {
        var $img = $('<img>').attr("src", e.target.result)
        $('#preview').empty().append($img)
      }
      reader.readAsDataURL(file)
    }
     
    $(function() {
      $('[type=file]').change(function(e) {
        var file = e.target.files[0]
        preview1(file)
      })
    })
  </script>
</head>
<body>
<form enctype="multipart/form-data" action="" method="post">
  <input type="file" name="imageUpload"/>
  <div id="preview" style="width: 300px;height:300px;border:1px solid gray;"></div>
</form>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js单独获取一个checkbox看其是否被选中
Sep 22 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
JavaScript脚本库编写的方法
Dec 09 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
Jun 21 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
AngularJS 实现购物车全选反选功能
Oct 24 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 Javascript
微信小程序之几种常见的弹框提示信息实现详解
Jul 11 Javascript
javascript设计模式之装饰者模式
Jan 30 Javascript
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
详解Vue使用 vue-cli 搭建项目
Apr 20 #Javascript
解决AngualrJS页面刷新导致异常显示问题
Apr 20 #Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 #Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 #Javascript
Vue如何引入远程JS文件
Apr 20 #Javascript
AngularJS改变元素显示状态
Apr 20 #Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 #Javascript
You might like
学习PHP的数组总结【经验】
2016/05/05 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
JavaScript 事件查询综合
2009/07/13 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
python关于变量名的基础知识点
2020/03/03 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
《菜园里》教学反思
2014/04/17 职场文书
初三开学计划书
2014/04/27 职场文书
政风行风建设责任书
2014/07/23 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript