如何使用js实现IE9下上传图片并预览

JavaScript016

如何使用js实现IE9下上传图片并预览,第1张

<div >

<div id="headImgPicview">

<img src="" id="headImgPic" width="200" height="auto"/>

</div>

<input type="text" id="headImgShow" name="headImg"

placeholder="图片(.jpg .jpeg .png)" size="40"

pattern="(.jpg$)|(.jpeg$)|(.png)|(.JPG$)|(.JPEG$)|(.PNG$)"

data-foolish-msg="请选择图片!"

value=""

required readonly/>

<div class="am-form-group am-form-file" style="width: 175px">

<button type="button" class="am-btn am-btn-default am-btn-sm">

<i class="am-icon-cloud-upload"></i>选择要上传的图片</button>

<input type="file" id="headImg" onchange="imgcheck('headImg',this)" multiple>

</div>

</div>

//文件动态上传方法+格式判断

function imgcheck(imgid,file){

if(!(/.jpg$/.exec($('#'+imgid).val())||(/.png/.exec($('#'+imgid).val()))||(/.jpeg$/.exec($('#'+imgid).val()))

||(/.JPG$/.exec($('#'+imgid).val()))||(/.PNG$/.exec($('#'+imgid).val()))||(/.JPEG$/.exec($('#'+imgid).val())) )){

alert("图片格式不正确!应为:.jpg .jpeg .png")

$('#'+imgid).val('')

}else{

var imgURL = document.getElementById(imgid)

$('#'+imgid+'Show').attr('placeholder',imgURL.value)

//调用图片预览

previewImage(imgid+'Pic',file)

<script type="text/javascript">

//下面用于图片上传预览功能

function setImagePreview(avalue) {

var docObj=document.getElementById("doc")

var imgObjPreview=document.getElementById("preview")

if(docObj.files &&docObj.files[0])

{

//火狐下,直接设img属性

imgObjPreview.style.display = 'block'

imgObjPreview.style.width = '150px'

imgObjPreview.style.height = '180px'

//imgObjPreview.src = docObj.files[0].getAsDataURL()

//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式

imgObjPreview.src = window.URL.createObjectURL(docObj.files[0])

}

else

{

//IE下,使用滤镜

docObj.select()

var imgSrc = document.selection.createRange().text

var localImagId = document.getElementById("localImag")

//必须设置初始大小

localImagId.style.width = "150px"

localImagId.style.height = "180px"

//图片异常的捕捉,防止用户修改后缀来伪造图片

try{

localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"

localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc

}

catch(e)

{

alert("您上传的图片格式不正确,请重新选择!")

return false

}

imgObjPreview.style.display = 'none'

document.selection.empty()

}

return true

}

</script>

都给你吧,我记得当时我用过这个,是可以的,你试试

那肯定是你的问题了,js路径不对等等等等其他因素。

<script>

var version = parseFloat(navigator.appVersion.split("MSIE")[1])

function yulan(file,id) {

if(file.value.indexOf(".jpg")<0 &&file.value.indexOf(".jpeg")<0 && file.value.indexOf(".gif")<0 &&file.value.indexOf(".png")<0 &&file.value.indexOf(".JPG")<0 &&file.value.indexOf(".JPEG")<0 && file.value.indexOf(".GIF")<0 &&file.value.indexOf(".PNG")<0){

alert('您选择的不是图片文件')

return false

}

if(navigator.userAgent.indexOf("Mozilla/5.")>-1){

document.getElementById(id).innerHTML = "<img src='"+file.files[0].getAsDataURL()+"'>"

CheckFileSize(file.files[0].getAsDataURL(),id)//if(CheckFileSize(file.files[0].getAsDataURL())>328)document.getElementById(id).getElementsByTagName('img')[0].style.width = "328px"

}else{

file.select()

var img = document.selection.createRange().text

document.getElementById(id).innerHTML = "<img src='"+img+"'>"

if(CheckFileSize(file.value)>328)document.getElementById(id).getElementsByTagName('img')[0].style.width = "328px"

}

}

</script>

<div id="tu"></div>

<form name="form1" method="POST" enctype="multipart/form-data">

<input type="file" name="UpFile" size="46" onchange="yulan(this,'tu')">

<div id="preview"></div>

</form>