日期:2014-05-16  浏览次数:20395 次

单个图片上传 js 预览图片 功能

方法1、

?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
??? <head>
??????? <title>get file input full path</title>
??? <script language='javascript'>
??????? function getFullPath(obj)
??????? {
??????????? if(obj)
??????????? {
??????????????? //ie
??????????????? if (window.navigator.userAgent.indexOf("MSIE")>=1)
??????????????? {
??????????????????? obj.select();
??????????????????? return document.selection.createRange().text;
??????????????? }
??????????????? //firefox
??????????????? else if(window.navigator.userAgent.indexOf("Firefox")>=1)
??????????????? {
??????????????????? if(obj.files)
??????????????????? {
??????????????????????? return obj.files.item(0).getAsDataURL();
??????????????????? }
??????????????????? return obj.value;
??????????????? }
??????????????? return obj.value;
??????????? }
??????? }
??? </script>
??? </head>
??? <body>
??????? <input type="file" onchange="document.getElementById('img').src=getFullPath(this);" />
???????? <img id="img"width="230" height="210" />?
??? </body>
</html>

?

?

方法2、

?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
最近项目中用到的图片上传前预览功能,兼容IE6-9,FF
<html xmlns="http://www.w3.org/1999/xhtml">
??????? <body>
??????????????? <input type=file name="doc" id="doc" onchange="javascript:setImagePreview();">
<p>
<div id="localImag"><img id="preview" width=-1 height=-1 style="diplay:none" /></div>
</p>
<script>
function setImagePreview() {
??????? var docObj=document.getElementById("doc");
?
??????? var imgObjPreview=document.getElementById("preview");
??????????????? if(docObj.files &&??? docObj.files[0]){
??????????????????????? //火狐下,直接设img属性
??????????????????????? imgObjPreview.style.display = 'block';
??????????????????????? imgObjPreview.style.width = '300px';
??????????????????????? imgObjPreview.style.height = '120px';???????????????????
??????????????????????? //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 = "300px";
??????????????????????? localImagId.style.height = "300px";
??????????????????????? //图片异常的捕捉,防止用户修改后缀来伪造图片
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>
</body>
</html>

?

?

?