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>

最新文章

  1. Android 缓存
  2. 关于android R.layout.没有出现自己写的布局解决方法
  3. Android sdk tool android 命令参数
  4. sqlite3的使用(iOS嵌入式关系数据库)
  5. Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
  6. Java并发编程:并发容器ConcurrentHashMap
  7. 乘法逆元...Orz
  8. PostMessage,模拟键盘输入
  9. NYOJ--714--Card Trick
  10. leetcode series:Two Sum
  11. shiro过滤器详解分析
  12. 【bzoj 3495】PA2010 Riddle
  13. 多线程之Synchronized锁的基本介绍
  14. Light Oj 1003
  15. Visual Studio Code 写Python 代码
  16. mac电脑复制粘贴使用command+c command+v
  17. crm作业知识点集合[二]
  18. CSS3实现的几个小loading效果
  19. 在linux 中wget 无法解析主机
  20. js处理json数据,java处理json数据

热门文章

  1. HDOJ(HDU).1058 Humble Numbers (DP)
  2. 从MYSQL数据库查出指定格式的日期
  3. eclipse中支持python
  4. swift的一些东西
  5. [rsync]rsync设定及错误处理
  6. HDU 3605 最大流+状态压缩
  7. YARN和MapReduce的内存设置参考
  8. idea 创建多模块时模块类无法引入
  9. ITEXT5 Font &#39;d:\SIMSUN.TTC&#39; with &#39;Identity-H&#39; is not recognized.
  10. 温习js中对象的继承