jsp中js实现本地图片预览基本功能
IE6.0以上版本,就有的本地上传图片预览的方法在html网页上能够使用,但是在jsp网页上不能够使用了。下面这段代码能在jsp中使用,通过滤镜来实现 首先根据不同浏览器取得上传文件的完整路径//获取上传图片的本地路径function getPath(obj){if(obj) {if(navigator.userAgent.indexOf("MS
IE6.0以上版本,就有的本地上传图片预览的方法在html网页上能够使用,但是在jsp网页上不能够使用了。
下面这段代码能在jsp中使用,通过滤镜来实现
首先根据不同浏览器取得上传文件的完整路径
<script type="text/javascript">
//获取上传图片的本地路径
function getPath(obj){
if(obj) {
if(navigator.userAgent.indexOf("MSIE")>0) {
obj.select();
//IE下取得图片的本地路径
return document.selection.createRange().text;
} else if(isFirefox=navigator.userAgent.indexOf("Firefox")>0) {
if (obj.files) { // Firefox下取得的是图片的数据
return files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
function PreviewImg(img) {
var imgPath = getPath(img);
//预览图片的div
var newPreview = document.getElementById("preview");
//允许上传的图片格式
var regext = /\.jpg$|\.gif$|\.jpeg$|\.png$|\.bmp$/gi;
if(!regext.test(imgPath)){
alert("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传!");
document.getElementById("btn_upload").disabled=true;
}else{
document.getElementById("btn_upload").disabled=false;
newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgPath;
newPreview.style.width = "100px";
newPreview.style.height = "100px";
}
}
// -->
</script>
<input name="fileName" type="file" class="text1" size="40" maxlength="40" οnchange="PreviewImg(this)">
<div id="preview"></div>
<br />
<input type="submit" value="提交" id="btn_upload" disabled="true" />
AlphaImageLoader
说明:
在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。
语法:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
enabled: 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。
true:默认值。滤镜激活。
false:滤镜被禁止。
sizingMethod: 可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。
crop:剪切图片以适应对象尺寸。
image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
scale:缩放图片以适应对象的尺寸边界。
src: 必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。
更多推荐
所有评论(0)