文章出處
文章列表
本地預覽的意思是,在選擇圖片之后先不上傳到服務器,而是由一個<img>
標簽來預覽本地的圖片,非 IE8/9 瀏覽器可以從<input type=“file”/>
中獲取到圖片流,然后設置到<img src=“”>
進行顯示,但 IE8/9 瀏覽器只能獲取到本地圖片的絕對路徑,并且設置 src 是無效的。
解決上面問題的方式是采用 css 圖片濾鏡,示例代碼:
<!-- 要設置圖片預覽區域的大小 -->
<p class="img-wrap">
<img name="prevPic" id="prevPic" src="" />
<input name="uploadImage" id="uploadImage" type="file" />
</p>
<script type="text/javascript">
$('#uploadImage').change(function (e) {
if (navigator.userAgent.indexOf('MSIE 8') >= 0 || navigator.userAgent.indexOf('MSIE 9') >= 0) {
$(this).select();
window.parent.document.body.focus();
var realpath = document.selection.createRange().text;
$(this).parent().css("filter", "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',src=\"" + realpath + "\",sizingMethod=scale)");
}
else {
var file = e.delegateTarget.files[0];
var reader = new FileReader();
var targetId = e.target.id;
reader.readAsDataURL(file);
reader.onload = function () {
var picString = reader.result;
$("#prevPic").attr({ "src": picString }).show();
};
}
});
</script>
獲取realpath
是為了解決發布 IIS 之后,出現本地圖片路徑變成C:\fakepath\xxxx.jpg
的問題。
文章列表
全站熱搜