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 相关文章推荐
JavaScript 给汉字排序实例代码
Jun 28 Javascript
Js 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
向大师们学习Javascript(视频与PPT)
Dec 27 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
利用css+原生js制作简单的钟表
Apr 07 Javascript
AngularJS入门教程之过滤器详解
Aug 19 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
vue-router的两种模式的区别
May 30 Javascript
详解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中curl_multi的应用
2013/07/17 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
vue+element实现批量删除功能的示例
2018/02/28 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python之web模板应用
2017/12/26 Python
OpenCV 模板匹配
2019/07/10 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
战友聚会邀请函
2014/01/18 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
建筑工地宣传标语
2014/06/18 职场文书
咖啡店创业计划书
2014/08/15 职场文书
学生党员检讨书范文
2014/12/27 职场文书
运动会加油稿50字
2015/07/21 职场文书
运动会广播稿50字
2015/08/19 职场文书
MySQL的join buffer原理
2021/04/29 MySQL