<
script language
=
"
javascript
"
>

function test()
{
document.all.showimg.src=document.all.file1.value;
}
</
script
>
<
img id
=
"
showimg
"
>
<
input type
=
"
file
"
id
=
"
file1
"
onchange
=
"
test()
"
>
当我们把上面的代码原封不动的拷贝到aspx文件中,运行毫无反应,
原因在于 对安全的考虑限制image对本地文件的访问(即使你在
aspx应用程序中用一个html页面替换aspx页面也无济于事.)
google一下能用滤镜的方式解决此问题.
在要显示图片的地方加上这段:
<
div id
=
"
divShow
"
style
=
"
FILTER:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);WIDTH:274px;HEIGHT:100px
"
>
crop:剪切图片以适应对象尺寸。
image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
scale:缩放图片以适应对象的尺寸边界
其中有一个src属性是指向图片路径的(必选的);
可以试一下
<
script language
=
"
javascript
"
>

function ShowImage(path)
{
document.all.divShow.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path;
}
</
script
>
<
body MS_POSITIONING
=
"
GridLayout
"
>
<
form id
=
"
Form1
"
method
=
"
post
"
runat
=
"
server
"
>
<
INPUT style
=
"
Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 272px
"
type
=
"
file
"
onchange
=
"
ShowImage(this.value)
"
>
<
div id
=
"
divShow
"
style
=
"
FILTER:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);WIDTH:274px;HEIGHT:100px
"
>
</
form
>
</
body
>
可以使用他的scale属性.可是这个属性有个问题,浏览大图时,他会缩小原图,浏览小图时就惨了,他会放大小图,
使小图模糊不清。
我们添加个方法改变这种情况。
function setImg(o)
{
var width_img;
var height_img;
o.style.visibility = "visible";
width_img=o.offsetWidth;
height_img=o.offsetHeight;
var width=274; //预定义宽
var height=100; //预定义高

var ratW; //宽的缩小比例
var ratH; //高的缩小比例
var rat; //实际使用的缩小比例
if(width_img<width && height_img<height)

{
//如果比预定义的宽高小,原图显示。
o.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
return;

}else
{
//如果大的化,要把 sizingMethod改成scale 如果属性是image,不管怎么改div的宽高,都不起作用
o.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";
}
ratH=height/height_img;
ratW=width/width_img;
if(ratH<ratW) //选择最小的作为实际的缩小比例
rat=ratH;
else
rat=ratW;
width_img=width_img * rat;
height_img=height_img * rat;
o.style.width=width_img;
o.style.height=height_img;
}
function ShowImage(path)
{
//处理前是原图,先将其隐藏,
document.all.divShow.style.visibility = "hidden";
document.all.divShow.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path;document.all.divShow.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
//过一小会获取div的宽高.
setTimeout("setImg(document.all.divShow)",100);
}
转至:http://www.cnblogs.com/BZZ/archive/2008/01/25/1053073.html
本文介绍了一种在ASPX页面上实现图片预览的方法,通过JavaScript和HTML滤镜技术,解决了因安全限制导致无法直接预览的问题,并提供了调整图片显示大小的方案。
1581

被折叠的 条评论
为什么被折叠?



