input file常用方法:
var obj=document.getElementById("upimage");
var file=obj.files[0];//获取文件数据
var path=obj.value;//获取文件当前路径
var size=obj.files[0].size;//获取文件大小
var prefix=path.substring( path.lastIndexOf('\\')+1 );//获取文件名的前缀名(文件格式)
var suffix=path.substring(path.lastIndexOf('.')+1).toLocaleLowerCase();
//获取文件名的后缀名(文件格式)并且转换为小写
图片上传预览完整代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上传图片</title>
<script type="text/javascript">
//下面用于图片上传预览功能
function setImagePreview() {
var obj=document.getElementById("upimage");
var imgObjPreview=document.getElementById("preview");
var src=event.target || window.event.srcElement; //获取事件源,兼容chrome/IE
//下面把路径截取为文件名
var filename=src.value;//图片完整路径
var prefix=filename.substring( filename.lastIndexOf('\\')+1 );//获取文件名的前缀名(文件格式)
var suffix=filename.substring( filename.lastIndexOf('.')+1).toLocaleLowerCase(); //获取文件名的后缀名(文件格式)
console.log(suffix);
if(suffix !='jpg' && suffix !='png'){
alert("图片格式只能为jpg 或者 png");
obj.outerHTML=obj.outerHTML;//清空选择按钮
return false;
}
if(obj.files && obj.files[0])
{
if(obj.files[0].size>2048000){
alert("文件超过2M");
obj.outerHTML=obj.outerHTML;//清空选择按钮
return false;
}
//火狐下,直接设img属性
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '150px';
imgObjPreview.style.height = '180px';
console.log(obj.files[0].size);
//imgObjPreview.src = obj.files[0].getAsDataURL(); //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
imgObjPreview.src = window.URL.createObjectURL(obj.files[0]);//写入文件流
}
else
{
obj.select();//IE下,使用滤镜
var imgSrc = document.selection.createRange().text;//路径
var localImagId = document.getElementById("imageDiv");
var img=document.getElementById("preview"); alert(localImagId.fileSize);
//必须设置初始大小
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>
</head>
<body>
<div id="imageDiv"><img id="preview" src="#"></div>
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="file" id="upimage" name="file" onchange="setImagePreview()"/> <input type="submit" value="Submit" /></form>
</body>
</html>