Base64字符串 + Flash 实现缩略图预览

在做图片上传等类似的应用中,经常需要提供缩略图预览功能;由于当今各种浏览器的安全性加强,也大大增加了这个功能的开发难度。

最普通的方法是先把图片上传到server,利用返回该图片的URL的方式显示缩略图,这样如果用户选错了图片,会造成很大的资源浪费。

在这里我要夸一下Flash:Flash Player 10+ 可以支持本地的图片预览!

但是某些情况下,我只是想在html标签里面来预览缩略图,而不是在Flash里面,这该如何呢?

于是我们又想到了Base64!我们先简单了解一下Base64:

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。最常见的用途是作为电子邮件或WebService附件的传输编码 ...

 

FirefoxchromeSafariIE8+ 等浏览器中都支持下面这种方法嵌入图片:

1. (X)HTML Image Embedding Example

<img alt="Embedded Image" 
src
="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..."/>


2. CSS Image Embedding Example

.image {
width
:100px;
height
:100px;
background-image
:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...);
}

 

所以我们有了另外一种思路:用Flash读取本机图片并转成Base64 字符串传给js来动态显示缩略图。

这里是Demo,一定要在 非IE 或者IE8+ 的浏览器里面查看

 

本文的源码到这里下载

 

 参考资料:

http://www.greywyvern.com/code/php/binary2base64

http://bbs.9ria.com/viewthread.php?tid=47520&from=favorites

 

 

 

 

posted on 2011-11-29 15:06  ASV5  阅读(1617)  评论(2编辑  收藏  举报