在Internet Explorer中上载之前检查文件大小的Javascript
在文件实际上传到服务器之前,是否可以使用Javascript检查文件的大小(在客户端) 该应用程序基于EXTJS和Java构建,仅限Internet Explorer 7在Windows XP机器上使用。不允许使用activeX 工作流程如下所示: 用户选择要上载的文件。 验证立即开始,以检查文件类型和文件大小。 如果文件大小超过限制,GUI将提示错误。 如果文件大小在限制范围内,则完整的文件路径将传递到要上载的服务器端(Javaservlet)在Internet Explorer中上载之前检查文件大小的Javascript,javascript,extjs,Javascript,Extjs,在文件实际上传到服务器之前,是否可以使用Javascript检查文件的大小(在客户端) 该应用程序基于EXTJS和Java构建,仅限Internet Explorer 7在Windows XP机器上使用。不允许使用activeX 工作流程如下所示: 用户选择要上载的文件。 验证立即开始,以检查文件类型和文件大小。 如果文件大小超过限制,GUI将提示错误。 如果文件大小在限制范围内,则完整的文件路径将传递到要上载的服务器端(Javaservlet) 使用javascript是否可以实现文件大小检查
使用javascript是否可以实现文件大小检查和读取完整文件路径?之所以不能,是因为如果浏览器和javascript可以访问客户端文件系统,那就不好了 这被积极否认,可视为攻击
目前无法从web浏览器中以便携方式检查上传文件的大小。使这成为可能,但这在MSIE7中不可用——它目前正在MSIE10的轨道上
故意没有办法确定上传文件的完整路径,因为这可能包括敏感信息,如最终用户的姓名。ActiveX对象也可以
<html>
<head>
<script>
function getSize()
{
var myFSO = new ActiveXObject("Scripting.FileSystemObject");
var filepath = document.upload.file.value;
var thefile = myFSO.getFile(filepath);
var size = thefile.size;
alert(size + " bytes");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>
函数getSize()
{
var myFSO=新的ActiveXObject(“Scripting.FileSystemObject”);
var filepath=document.upload.file.value;
var thefile=myFSO.getFile(文件路径);
变量大小=文件大小;
警报(大小+字节);
}
请尝试下面的代码
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(function() {
$("document").ready(function(){
$("#myFile1").change(function() {
var f1=document.getElementById("myFile1").value;
if((f.size||f.fileSize)==09765625)
{
alert("file size is less than 1mb");
}
else
{
alert("file size should not exceed more than 1mb");
$(this).val($.data(this, 'f'));
return false;
}
});
});
})
</script>
</head>
<body>
<input type='file' name="file" id="myFile1" />
</body>
</html>
$(函数(){
$(“文档”).ready(函数(){
$(“#myFile1”).change(函数(){
var f1=document.getElementById(“myFile1”).value;
if((f.size | | f.fileSize)==09765625)
{
警报(“文件大小小于1mb”);
}
其他的
{
警报(“文件大小不应超过1mb”);
$(this).val($.data(this,'f'));
返回false;
}
});
});
})
谢谢你的代码。正如我在第一篇文章中提到的,不要走ActiveX的路。:)我正在寻找预上传文件。例如,当我选择了文件,然后在实际上载之前获取文件大小和完整文件路径。正如我所指出的,目前无法检测文件大小,并且有(而且可能永远不会有)任何方法来确定本地路径。另一种方法如何。假设我有一个输入表单,首先找到完整的文件路径,然后将其提供给文件大小检查代码。我看了uploadify、swfupload、FancifulPload和YuiPloader。我似乎无法将完整的文件路径“馈送”到它们中。