我想获得文件大小,我正在使用html上传,但它不起作用



我想获得使用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一样得到处理

另请参阅此帖子。

最新更新