前端图片预览

网站后台页面有一个功能,管理员上传图片的时候实现预览,这个功能想到两种实现方法:

1.每次添加图片服务端处理图片,ajax传回缩略图,在页面展示。

2.前端实现预览,只有当提交表单的时候才跟服务器交互。

前端预览的好处显而易见,减少跟服务器的请求次数。百度了下,前端完全能实现这个功能,这个功能也就转化成了前端读取本机文件。考虑到网站是给内部人员用的,不用考虑浏览器兼容的问题,实现起来就简单多了。

没什么好说的,上传图片用这个标签<input type="file">,这个标签有个特性:this.files,通过这个特性就可以读取本机的文件了。this.files的详细介绍参考这个博文:http://blog.csdn.net/oscar999/article/details/37499743

每次选择文件后,立即显示选择图片预览,就要用到input的onchang事件。本文不用file的操作方式,而是用URL.createObjectURL(),该方法会根据传入的参数创建一个指向该参数对象的URL.

效果:

下面是代码:

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 </head>
 7
 8 <body>
 9     <form action="http://www.baidu.com" method="get">
10          <div class="control-group">
11                        <label class="control-label">缩略图</label>
12                        <div class="controls">
13                            <span id="imgContent">
14
15                           </span>
16                           <img style="width:50px;height:50px;margin-left: 10px;" src="img/i_addphoto.png" onclick="$(‘#img‘).click()">
17                         <div style="opacity: 0;height: 0px;">
18                             <input type="file" name="img" id="img" data-content="imgContent" multiple/>
19                         </div>
20                        </div>
21           </div>
22           <br/>
23                 <input type="submit"/>
24     </form>
25 <!--引用百度的juery库-->
26 <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
27 <script>
28 //工具函数,可以作为尾部文件引用进来。
29     function getObjectURL(file) {
30         var url = null ;
31         if (window.createObjectURL!=undefined) { // basic
32             url = window.createObjectURL(file) ;
33         } else if (window.URL!=undefined) { // mozilla(firefox)
34             url = window.URL.createObjectURL(file) ;
35         } else if (window.webkitURL!=undefined) { // webkit or chrome
36             url = window.webkitURL.createObjectURL(file) ;
37         }
38         return url ;
39     }
40 </script>
41 <script>
42 //从本地添加了文件后,触发onchange事件。
43     $("input[type=‘file‘]").change(function(e) {
44             $("#"+$(this).attr("data-content")).html(‘‘);
45             for (var i = 0; i < this.files.length; i++) {
46                 $("#"+$(this).attr("data-content")).append(‘<img style="width:50px;height:50px;margin-left: 10px;" src="‘+getObjectURL(this.files[i])+‘">‘);
47             }
48         });
49 </script>
50 </body>
51 </html>
时间: 2024-12-27 14:06:05

前端图片预览的相关文章

使用FileReader实现前端图片预览

在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片元素的src属性. 这种方法的缺点是:必须要先把图片上传到服务器.那么问题来了,如果上传的图片很大,而网速又很慢,这就需要等待很久预览图片才会显示出来了,而且,如果用户预览图片后发现不太满意,想重新选择一张图片,这时候还要把已经上传到服务器上的图片给删除掉. 自从有了HTML5的FileReader对象以后,预览图片变得简单多了,不再需要后台的配合,并且JS操作本地文件已经成

前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome

在现在的Web开发中不可避免的会做一个图片预览的功能, 比如在上传图片的情况下,一个很简单的办法就是讲图片上传至服务器之后,再将文件的URL返回回来,然后异步通过这个URL加载刚刚上传的图片,实现图片的预览, 很明显的在这个过程中两次Web请求,一次发送文件,一次下载文件,到最后这个文件如果在客户端被删除(取消上传,弃用这次的上传), 这整个过程都白费了.我们希望能够在图片上传之前就能进行图片的预览,这样就避免了不必要的网络请求和时间等待. 在IE中有如下方式 var url; var file

纯前端的图片预览

尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3925827.html ^_^肥仔John 一.前言 图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了.在这之前,我曾经通过订阅input[type=file]元素的onchange事件,一旦更改路径则将图片上传至服务器,接着就获取图片路径并赋值到img元素上.先不管文件异步提交的解决方案,就是服务端清理那些临时的预览图片已经增加不少工作量了. 偶然从MDN上找到纯前

JS魔法堂之实战:纯前端的图片预览

一.前言 图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了.在这之前,我曾经通过订阅input[type=file]元素的onchange事件,一旦更改路径则将图片上传至服务器,接着就获取图片路径并赋值到img元素上.先不管文件异步提交的解决方案,就是服务端清理那些临时的预览图片已经增加不少工作量了. 偶然从MDN上找到纯前端图片预览的相关资料,经过整理后记录下来以便日后查阅. 二.准备功夫1──FileReader FileReader是HTML5的新特性,用于读取

H5图片预览、压缩、上传

目标实现: 1.选择图片, 前端预览效果 2.图片大于1.2M的时候, 对图片进行压缩 3.以表单的形式上传图片 4.图片删除 预览效果图: 代码说明: 1.input:file选择图片 <!-- html部分 --> <ul id="preview" class="clear"> <li class="fl"> <img src="/images/audition/icon_upload.pn

HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)

原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代之前,那是不可能实现的,必须要上传到后台,由后台脚本读取文本流后进一步验证.这样就造成了一定的服务器资源浪费.但是html5时代,这个工作我们完全可以交给前端来做了. 另一方面,html5时代,许多我们原来的图片预览方案都失效了.究其原因,其实是现代浏览器出于对用户隐私的保护,file控件不再提供真

dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术:HTML5的api,作为一名前端的菜鸟,没什么可说的,直接分享自己学习的资料: 关于HTML5 的这些新的特性大家可以到Mozilla的开发者社区MDN https://developer.mozilla.org/zh-CN/ 上查HTML5的资料 还有就是发掘到的比较牛逼的一篇博客:http:/

实现图片预览功能

本来以为图片预览功能非常的简单,就是在file标签change时获取路径展示给用户,但是浏览器处于安全考虑并不会让脚本获得绝对路径(这会在一定程度上暴露用户的文件 目录),只能获取文件名.所以要通过和后台的配合,在file标签发生change事件时,将图片以ajax的方式发送到后台,后台将图片保存在服务器,然后讲文件地址返回回来,再由前端展示给用户,完成预览功能! 文件的ajax并不是太容易,所以使用了jquery的插件,jquery.form.js.一些参数性问题可以参考form插件. <fo

jquery实现上传图片及图片大小验证、图片预览效果代码

jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture(){     var file = $('file_c').value;     if(!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(file)){            alert("图片类型必须是.gif,jpeg,jpg,png中的一种")        }else{      $('both_form')