Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Internet Explorer中上载之前检查文件大小的Javascript_Javascript_Extjs - Fatal编程技术网

在Internet Explorer中上载之前检查文件大小的Javascript

在Internet Explorer中上载之前检查文件大小的Javascript,javascript,extjs,Javascript,Extjs,在文件实际上传到服务器之前,是否可以使用Javascript检查文件的大小(在客户端) 该应用程序基于EXTJS和Java构建,仅限Internet Explorer 7在Windows XP机器上使用。不允许使用activeX 工作流程如下所示: 用户选择要上载的文件。 验证立即开始,以检查文件类型和文件大小。 如果文件大小超过限制,GUI将提示错误。 如果文件大小在限制范围内,则完整的文件路径将传递到要上载的服务器端(Javaservlet) 使用javascript是否可以实现文件大小检查

在文件实际上传到服务器之前,是否可以使用Javascript检查文件的大小(在客户端)

该应用程序基于EXTJS和Java构建,仅限Internet Explorer 7在Windows XP机器上使用。不允许使用activeX

工作流程如下所示: 用户选择要上载的文件。 验证立即开始,以检查文件类型和文件大小。 如果文件大小超过限制,GUI将提示错误。 如果文件大小在限制范围内,则完整的文件路径将传递到要上载的服务器端(Javaservlet)


使用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。我似乎无法将完整的文件路径“馈送”到它们中。