对于文件上传问题做了很多项目都一直没能很好的解决。
疑问主要是想在客户端限制文件上传的大小。网上搜了很多资料
大概有两种解决方法:
(一)使用document.getElementById或者document.createElement的或者var img=new Image();
然后在onreadystatechange事件里检查大小
但这种代码通用性不强浏览器兼容存在问题一直无法解决
(二)使用FSO控件,但这样存在安全问题
<div id="photoyn"><input id="file1" type="file" οnchange="ShowSize(this.value)" />
<script type="text/javascript">
function ShowSize(files){
var fso,f;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(files);
var mySize = f.size/1024;
alert(mySize+" K ");
var myName = f.Name;
var myPath = f.Path;
var myDrive = f.Drive;
var myType = f.type;
var myAttributes = f.Attributes;
var myDateCreated = f.DateCreated;
}
</script>
所以说要在客户端检测文件大小没有实现方法。
最终解决方案还是在服务器端检测,在上传的过程中,在服务器的内存中进行判断并返回信息给客户端。
疑问主要是想在客户端限制文件上传的大小。网上搜了很多资料
大概有两种解决方法:
(一)使用document.getElementById或者document.createElement的或者var img=new Image();
然后在onreadystatechange事件里检查大小
但这种代码通用性不强浏览器兼容存在问题一直无法解决
(二)使用FSO控件,但这样存在安全问题
<div id="photoyn"><input id="file1" type="file" οnchange="ShowSize(this.value)" />
<script type="text/javascript">
function ShowSize(files){
var fso,f;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(files);
var mySize = f.size/1024;
alert(mySize+" K ");
var myName = f.Name;
var myPath = f.Path;
var myDrive = f.Drive;
var myType = f.type;
var myAttributes = f.Attributes;
var myDateCreated = f.DateCreated;
}
</script>
所以说要在客户端检测文件大小没有实现方法。
最终解决方案还是在服务器端检测,在上传的过程中,在服务器的内存中进行判断并返回信息给客户端。