我参照网上的代码的。目的是:JS控制点按钮生成HTML的file控件(点一下出现1个),然后浏览file控件,将浏览后的图片显示到DIV里(那个DIV的id="divShow"的那个,下面有。)
HTML部分
<table id="target" border="1" width="500" height="20">
<tr>
<td id="Td0">
<div id="divShow" style="FILTER:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);">
</div>
</td>
</tr>
</table>
JS部分
function FnImgChange(obj)
{
var objImgPath = document.getElementById(obj.id);
var objImg = document.getElementById("divShow");
var img = objImgPath.value; objImg.style.visibility = "hidden";
objImg.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = img;
objImg.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
//过一小会获取div的宽高.
setTimeout("setImg()",100);
}
function setImg()
{
var o = document.getElementById("divShow");
var width_img;
var height_img; o.style.visibility = "visible";
width_img=o.offsetWidth;
height_img=o.offsetHeight; var width=420; //预定义宽,图片的宽度了
var height=200; //预定义高,如果宽小于长度,那么他会自适应按照宽度来计算比例,所以对于一般情况长>宽的照片时候,这个参数没啥意义
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 newRow()
{
……………………………………………………………………………………………………………………
c1.innerHTML="<input type='file' style=\"width: 500px;\" id='"+i+"' onchange=\"FnImgChange(this)\" name='filecom'>";
……………………………………………………………………………………………………………………
}
}
HTML部分
<table id="target" border="1" width="500" height="20">
<tr>
<td id="Td0">
<div id="divShow" style="FILTER:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);">
</div>
</td>
</tr>
</table>
JS部分
function FnImgChange(obj)
{
var objImgPath = document.getElementById(obj.id);
var objImg = document.getElementById("divShow");
var img = objImgPath.value; objImg.style.visibility = "hidden";
objImg.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = img;
objImg.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
//过一小会获取div的宽高.
setTimeout("setImg()",100);
}
function setImg()
{
var o = document.getElementById("divShow");
var width_img;
var height_img; o.style.visibility = "visible";
width_img=o.offsetWidth;
height_img=o.offsetHeight; var width=420; //预定义宽,图片的宽度了
var height=200; //预定义高,如果宽小于长度,那么他会自适应按照宽度来计算比例,所以对于一般情况长>宽的照片时候,这个参数没啥意义
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 newRow()
{
……………………………………………………………………………………………………………………
c1.innerHTML="<input type='file' style=\"width: 500px;\" id='"+i+"' onchange=\"FnImgChange(this)\" name='filecom'>";
……………………………………………………………………………………………………………………
}
}
解决方案 »
- AspNetPager分页控件7.3.2的VS智能感知xml文件如何使用?
- asp.net+aeccess 会员资料修改问题
- JS如何调用后台带参数的函数
- js 将GridView 导入Excel出错
- 有关excel数据导入,数据丢失问题
- 这是什么原因??????
- Infragistics的菜单用xml导入的问题
- 用户控件问题:我在主页里修改了用户控件的属性,然后希望在用户控件的page_load事件里立刻显示出来,怎么实现??
- 如何在ASP.NET中应用框架
- 刚学Asp,希望提供关于数据库连接,操纵的基本,简单的例子,有说明更好
- 求教一个imagefield的图片控制问题。
- 请问各位一般用什么做网站日志存储?比如每天产生1G日志左右。能达到高性能
function PreviewImg(imgFile)
{
var newPreview = document.getElementById("newPreview");
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
newPreview.style.width = "80px";
newPreview.style.height = "60px";
}
</script>
<asp:FileUpload ID="FileUpload1" runat="server" onchange="PreviewImg(this)" />
<div id="newPreview"> </div>
function $(o){return document.getElementById(o);}
function CheckImg(o,img)
{
if (!/\.((jpg)|(bmp)|(gif)|(png))$/ig.test(o.value))
{
alert('只能上传jpg,bmp,gif,png格式图片!');
o.outerHTML = o.outerHTML;
}
else
{
$(img).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=o.value;
}
} <asp:FileUpload ID="FileUpload1" runat="server" onchange="CheckImg(this, 'img');" />
<div id="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src= <%= pic%>,sizingMethod=scale);width:88px;height:113px;"> </div>
public string pic="";
<input type="text" tagfff='1' id="productImage1" name="productImage1" readonly="readonly" size="60" maxlength="100" />
<span aindex="1" onclick="TriggerUpload(this);" style="cursor: hand; cursor: pointer">上传图片</span>
<span bindex="1" onclick='addFile(this);' style="cursor: hand; cursor: pointer">新增</span><br />
<input type="hidden" name='imageLength' id='imageLength' value='0' />
<input type="hidden" id="imginfo1" name="imginfo1" />function addFile(obj) {
var i = (parseInt(obj.getAttribute("bindex")) + 1);
if (i < 5) {
var jjj = $("#imageDivLeft");
jjj.css("height", parseInt(jjj.css("height")) + 40);
if (i != 4)
$("#imageDiv").append('<input tagfff="1" type="text" readonly="readonly" id="productImage' + i + '" name="productImage' + i + '" size="60" maxlength="100"/><span aindex="' + i + '" onclick="TriggerUpload(this);" style="cursor: hand; cursor: pointer">上传图片</span> <span onclick="addFile(this);" bindex="' + i + '" style="cursor: hand; cursor: pointer">新增</span><br />');
else
$("#imageDiv").append('<input type="text" readonly="readonly" id="productImage' + i + '" name="productImage' + i + '" size="60" maxlength="100"/><span aindex="' + i + '" onclick="TriggerUpload(this);" style="cursor: hand; cursor: pointer">上传图片</span><br />');
$("#imageInfoDiv").append('<input type="hidden" id="imginfo' + i + '" name="imginfo' + i + '" />');
obj.parentNode.removeChild(obj);
}
else {
alert("最多能上传4张图片");
}
}直接append,因为在后台是可以用postfile获取的