iT邦幫忙

2

預覽上傳圖片

  • 分享至 

  • xImage
  •  

一、前言
有些網站在上傳資料的時候,可以在上傳前預覽圖片。去看連線資料,居然也沒有ajax的痕跡?到底是怎麼做的呢?簡單來說,當你選擇了某張圖片,瀏覽器其實已經有該圖片的資訊了。
網址 :
https://docs.google.com/document/d/1J7T3rP3DgPB2WCYe2T_uhRCJkTKtd4-AJjdWSvPd-BE/pub

預覽上傳圖片
一、前言

有些網站在上傳資料的時候,可以在上傳前預覽圖片。去看連線資料,居然也沒有ajax的痕跡?到底是怎麼做的呢?簡單來說,當你選擇了某張圖片,瀏覽器其實已經有該圖片的資訊了。
二、files屬性

當input type=”file”你放上圖片的時候,該元素的files屬性是一個陣列,會有你選擇圖片的資料。

$("img").change(function(){
        console.log(this.files) ;
});

三、FileReader物件

另外html5有一個FileReader。IE的部分在IE10之後也有支援了。
只要把該檔案傳給這個物件,我們就可以得到他的dataURL了(也算是base64編碼)

$("#img").change(function(){
        if (this.files && this.files[0]) {
                var reader = new FileReader();
                
                reader.onload = function (e) {
                        $('#blah').attr('src', e.target.result);
                }
                
                reader.readAsDataURL(this.files[0]);
        }
});

其中的 e.target.result 會是下面的格式
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/+ETXUV4aWYAAE1NACoAAAAIAAcBMgACAAAAFAAAAGIBOwACAAAAB...........未完

四、DEMO
http://jsfiddle.net/sheephead0818/g7kydnd4/


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
saintcharles
iT邦新手 4 級 ‧ 2015-01-18 11:00:45

最近剛好有用到,感謝分享!

我要留言

立即登入留言