国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

Html5 FileReader實現即時上傳圖片功能實例代碼

2020-03-24 18:52:39
字體:
來源:轉載
供稿:網友
下面的是在ie9下面實現的預覽,跟ie8還是不一樣的,不過我記得貌似ie8好像也是利用了fiter的功能,因為項目只要求在ie9以上,所以就沒有寫出ie8的啦

復制代碼代碼如下:
!DOCTYPE html
html lang="en"
head
meta charset="UTF-8"
title Document /title
/head
body
p style type="text/css"
#kk{
width:400px;
height:400px;
overflow: hidden;
}
#preview_wrapper{
width:300px;
height:300px;
background-color:#CCC;
overflow: hidden;
}
#preview_fake{ /* 該對象用于在IE下顯示預覽圖片 */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
width:300px;
overflow: hidden;
}
#preview_size_fake{ /* 該對象只用來在IE下獲得圖片的原始尺寸,無其它用途 */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);
width:300px;
visibility:hidden;
overflow: hidden;
}
#preview{ /* 該對象用于在FF下顯示預覽圖片 */
width:300px;
height:300px;
overflow: hidden;
}
/style script type="text/javascript"
function onUploadImgChange(sender){
if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){
alert('圖片格式無效!');
return false;
}
var objPreview = document.getElementById('preview');
var objPreviewFake = document.getElementById('preview_fake');
var objPreviewSizeFake = document.getElementById('preview_size_fake');
if( sender.files sender.files[0] ){ //這里面就是chrome和ff可以兼容的了
objPreview.style.display = 'block';
objPreview.style.width = 'auto';
objPreview.style.height = 'auto';
// Firefox 因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑
objPreview.src = sender.files[0].getAsDataURL();
}else if( objPreviewFake.filters ){
// IE7,IE8 在設置本地圖片地址為 img.src 時出現莫名其妙的后果
//(相同環境有時能顯示,有時不顯示),因此只能用濾鏡來解決
// IE7, IE8因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑
sender.select();
sender.blur();
var imgSrc = document.selection.createRange().text;
objPreviewFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
alert("已成功選擇圖片!");
alert(objPreviewSizeFake.offsetWidth);
autoSizePreview( objPreviewFake,objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );
objPreview.style.display = 'none';
}
}
function onPreviewLoad(sender){
autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );
}
function autoSizePreview( objPre, originalWidth, originalHeight ){
var zoomParam = clacImgZoomParam( 300, 300, originalWidth, originalHeight );
objPre.style.width = zoomParam.width + 'px';
objPre.style.height = zoomParam.height + 'px';
objPre.style.marginTop = zoomParam.top + 'px';
objPre.style.marginLeft = zoomParam.left + 'px';
}
function clacImgZoomParam( maxWidth, maxHeight, width, height ){
var param = { width:width, height:height, top:0, left:0 };
if( width maxWidth || height maxHeight ){
rateWidth = width / maxWidth;
rateHeight = height / maxHeight;
if( rateWidth rateHeight ){
param.width = maxWidth;
param.height = height / rateWidth;
}else{
param.width = width / rateHeight;
param.height = maxHeight;
}
}
param.left = (maxWidth - param.width) / 2;
param.top = (maxHeight - param.height) / 2;
return param;
}
/script input name="localfile" type="file" id="localfile" size="28" onchange="onUploadImgChange(this)"/ !--以下是預覽圖片用的--
div id="kk"
div id="preview_wrapper"
div id="preview_fake"
img id="preview" src="" onload="onPreviewLoad(this)"/
/div
/div
br/
img id="preview_size_fake" /
/div /p
/body
/html
html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴江市| 丰都县| 浦江县| 仙游县| 扎囊县| 保德县| 盈江县| 黑龙江省| 扎鲁特旗| 壤塘县| 吴堡县| 伊吾县| 抚宁县| 宁波市| 溧阳市| 砀山县| 荣成市| 平阳县| 尚志市| 桂平市| 利川市| 商都县| 炉霍县| 隆德县| 泌阳县| 洛隆县| 浑源县| 德安县| 千阳县| 巍山| 东台市| 平邑县| 赤城县| 庆元县| 微博| 博罗县| 沧州市| 巴林左旗| 莆田市| 金坛市| 葫芦岛市|