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) 是微软内置的库,作用是实现本地图片预览。

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...