火狐与IE上传预览

IE 路径可以直接获取,但是火狐不可以,因为涉及到安全问题,火狐禁止了直接获取客户端全路径,但可以使用以下方式获取加密后路径,火狐浏览器会自动解密(自我认为) 使用struts情况下上传只需在Action 声明个File 参数get set 接收
upload:为file对象
iconPath = window.URL.createObjectURL(upload.files[0]);



//显示预览图
function showPic(iconPath){

var width = '200px';
var height = '100px';

//获取HTTP浏览器的类型
var Browser_Agent=navigator.userAgent;
var isFirefox = Browser_Agent.indexOf("Firefox")!=-1?true:false;

if(isFirefox)
{
//火狐浏览器
document.getElementById("Preview").innerHTML = "<img id='imgPreview' src='"+iconPath+"' width='"+width+"' height='"+height+"'/>";
}
else
{
//IE浏览器
var Preview = document.getElementById('Preview');
Preview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = iconPath;
Preview.style.width = width;
Preview.style.height = height;
}
}


function isPicSize(iconPath,upload){

if(iconPath != ""){
var extStart=iconPath.lastIndexOf(".");
var ext=iconPath.substring(extStart,iconPath.length).toUpperCase();
if(ext!=".BMP"&&ext!=".PNG"&&ext!=".GIF"&&ext!=".JPG"&&ext!=".JPEG"){
alert("照片限于bmp,png,gif,jpeg,jpg格式,请您重新上传照片");
imgsizeFlag = false;
return false;
}

//获取HTTP浏览器的类型
var Browser_Agent=navigator.userAgent;
var isFirefox = Browser_Agent.indexOf("Firefox")!=-1?true:false;
if(isFirefox)
{
//火狐 暂时未取得全路径
iconPath = window.URL.createObjectURL(upload.files[0]);
}
var imgsize = parseInt(ajaxAction());
if(imgsize > 20*1024)//限制文件20K
{
alert("当前图片超过20K,请重新上传!");
imgsizeFlag = false;
return false;
}
else
{
showPic(iconPath);
}

}
}

//获取图片上传大小 图片大小不可获取,只有获取图片尺度,大小改为后台验证
function ajaxAction(iconPath)
{
var result="";
var urlstr = "systemlink!picsize.action";
$.ajax({
url:urlstr,
async:false, //线程同步为 false,异步为true 为了保持return 能获取到值而不是空所以,要求线程同步
dataType:"text",
error:function(e){alert("请联系管理员,错误:"+e.message);},
success:function(data){ result = data;}
});
return result;
}


<input type="file" id="uploading" name="myFile" onchange="isPicSize(this.value,this)" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值