我想获得使用html上传的文件大小,但它不起作用。
这是我的代码
<html>
<head>
<script type="text/javascript" src="js/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>
应该是f
而不是f1
var f = document.getElementById("myFile1");
当您在条件中检查变量f
时。因此相应地更改
您应该使用以下检查文件大小
var f = $("#myFile1")[0].files[0].size;
$("#myFile1").change(function() {
var f1 = document.getElementById("myFile1").value; // will get file input value
var size = ($("#myFile1")[0].files[0].size); // get file size here
if (size < 1048576) {
alert("file size is less than 1mb");
} else {
alert("file size should not exceed more than 1mb");
$(this).val($.data(this, 'f'));
return false;
}
});
演示
document.getElementById("myFile1").value
仅返回文件名。
输入文件字段是数组中的返回文件信息,所以第一个文件使用[0]
,尝试这种方式
var file_size = document.getElementById("myFile1").files[0].size
另一个问题:您在f1
变量中分配了Dom-ref,并在IF
条件中使用了f
。。在条件中使用f1
变量,许多错误尝试此更新的代码
var f1 = document.getElementById("myFile1").files[0];
if (f1.file_size < 1048576)
{
alert("file size is less than 1mb");
}
$(function() {
$("document").ready(function() {
$("#myFile1").change(function() {
var f1 = document.getElementById("myFile1").files[0];
if (f1.file_size < 1048576)
{
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 src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='file' name="file" id="myFile1" />
我更改了如下代码。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function() {
$("document").ready(function() {
$("#myFile1").change(function() {
var f1 = this.files[0];
if (f1.size < 1048576)
{
alert("file size is less than 1mb");
}
else
{
alert("file size should not exceed more than 1mb");
$(this).val($.data(this, 'f1'));
return false;
}
});
});
})
</script>
</head>
<body>
<input type='file' name="file" id="myFile1" />
</body>
</html>
您正在进行不正确的DOM操作,最好使用Jquery,并尝试使用一些好的在线编辑器,如w3c
此外,命名约定必须像您声明f1变量并尝试使用f一样得到处理
另请参阅此帖子。