微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HTML+JS实现在图片上传前实现本地预览

如何在图片上传前实现本地预览,这个功能实现起来似乎很简单,但却又是很棘手。

之前在从事项目开发中,遇到过这样的问题,原先有写好的代码,以为是很好实现的功能

故没有特别在意。今天无意中研究了一下,原来并不像想象中的那样简单。直接上代码 如图

HTML代码

<table>
<tr>
<td>
<asp:FileUpload ID=BtnUpload runat=server onchange=onFilechange() />
</td>
</tr>
<tr>
<td>
<img id=ImagePhoto alt= src= height=100px width=100px />

<div id=pic runat=server style=filter: progid:DXImageTransform.Microsoft.AlphaimageLoader(sizingMethod=scale);
width: 100px; height: 100px; display: none>
</div>

<asp:Button ID=Button1 runat=server Text=上传 />
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>

JS代码

<script language=javascript type=text/javascript>
function onFilechange() {
var url = $(#BtnUpload).attr(value);
$(#ImagePhoto).css(width,0);
$(#ImagePhoto).css(height,0);
$(#pic).css(display,block);
document.getElementById(pic).filters.item(DXImageTransform.Microsoft.AlphaimageLoader).src = url;
}
</script>

注意以下代码

<div id=pic runat=server style=filter: progid:DXImageTransform.Microsoft.AlphaimageLoader(sizingMethod=scale);
width: 100px; height: 100px; display: none>
</div>

这里的div就是预览照片的,认的image控件初始化的时候加载,当选择了新的照片后会隐藏image控件,显示Pic。

这里的filter:Progid:DXImageTransform.Microsoft.AlphaimageLoader(sizingMethod=scale) 是微软内置的库,作用是实现本地图片预览。

这里会存在一个问题,在网页中图片是不识别绝对路径的,只识别网络路径,我想这个库应该是将本地的路径转换成网络的路径吧。(个人猜测!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐