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两段代码,两个小技巧
Feb 04 Javascript
ExtJS中设置下拉列表框不可编辑的方法
May 07 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
Aug 21 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
jquery实现简单的banner轮播效果【实例】
Mar 30 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
vue-ajax小封装实例
Sep 18 Javascript
简化vuex的状态管理方案的方法
Jun 02 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 Javascript
jQuery实现轮播图效果
Nov 26 jQuery
详解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
Protoss兵种对照表
2020/03/14 星际争霸
php类声明和php类使用方法示例分享
2014/03/29 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
JS简单获得节点元素的方法示例
2018/02/10 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
见习期自我鉴定
2013/11/07 职场文书
个人自我评价范文
2014/02/05 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
学习经验演讲稿
2014/05/10 职场文书
节能标语大全
2014/06/21 职场文书
常住证明范本
2015/06/23 职场文书
交流会主持词
2015/07/02 职场文书
毕业生入职感言
2015/07/31 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
Java的Object类的九种方法
2022/04/13 Java/Android