Javascript previews images before uploading them compatible with most browsers

  • 2020-03-26 21:37:04
  • OfStack

 
<div id="localImag"><img id="preview" width="-1" height="-1" style="display:none" /></div> 
<asp:FileUpload ID="file_head" runat="server" onchange="javascript:setImagePreview();" /> 

 
<script type="text/javascript"> 
function setImagePreview() { 
var docObj = document.getElementById("ctl00_ContentMain_file_head"); 
var fileName = docObj.value; 
if (!fileName.match(/.jpg|.gif|.png|.bmp/i)) { 
alert(' The format of the picture you uploaded is not correct, please choose again! '); 
return false; 
} 

var imgObjPreview = document.getElementById("preview"); 
if (docObj.files && docObj.files[0]) { 
//Under firefox, set the img property directly
imgObjPreview.style.display = 'block'; 
imgObjPreview.style.width = '63px'; 
imgObjPreview.style.height = '63px'; 
//imgObjPreview.src = docObj.files[0].getAsDataURL(); 
if (window.navigator.userAgent.indexOf("Chrome") >= 1 || window.navigator.userAgent.indexOf("Safari") >= 1) { 
imgObjPreview.src = window.webkitURL.createObjectURL(docObj.files[0]); 
} 
else { 
imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]); 
} 
} else { 
//Under IE, use a filter
docObj.select(); 
docObj.blur(); 
var imgSrc = document.selection.createRange().text; 
var localImagId = document.getElementById("localImag"); 
//You must set the initial size
localImagId.style.width = "63px"; 
localImagId.style.height = "63px"; 
//Image abnormal capture, prevent users to modify the suffix to forge the image
try { 
localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; 
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; 
} catch (e) { 
alert(" The format of the picture you uploaded is not correct, please choose again! "); 
return false; 
} 
imgObjPreview.style.display = 'none'; 
document.selection.empty(); 
} 
return true; 
} 

</script> 

This js solution 360 browser display image problem. Since 360 6.2 USES the Chrome kernel
 
window.URL.createObjectURL(docObj.files[0]); 

Can only be recognized under the firefox, chrome window. Don't know in the URL. CreateObjectURL, all using Safari window. WebkitURL. CreateObjectURL

Related articles: