Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
Html 是) for(让键为fd.keys()){ 如果(fd.get(键).size>=2000000){ return console.log(`This archive${fd.get(key.name}大于2MB。`) } 否则如果(fd.get(键)。尺寸_Html - Fatal编程技术网

Html 是) for(让键为fd.keys()){ 如果(fd.get(键).size>=2000000){ return console.log(`This archive${fd.get(key.name}大于2MB。`) } 否则如果(fd.get(键)。尺寸

Html 是) for(让键为fd.keys()){ 如果(fd.get(键).size>=2000000){ return console.log(`This archive${fd.get(key.name}大于2MB。`) } 否则如果(fd.get(键)。尺寸,html,Html,如您所见,您可以通过键入以下内容从随表单提交的存档中获取大小: fd.get(key).size 并且文件名也是可访问的: fd.get(key.name) 希望这是有帮助的 是的,现在不可能。HTML5中有一些新文件api的草稿,但目前没有浏览器完全支持它。请参阅:,“设置文件大小限制”,了解为什么尝试在客户端执行此操作是毫无意义的。您无法访问访问者计算机上的本地文件系统,你最好希望apache限制文件大小,如果文件太大就停止上传。在客户端这样做是愚蠢的,除非你只是想方便用户。“您必须验证

如您所见,您可以通过键入以下内容从随表单提交的存档中获取大小:

fd.get(key).size
并且文件名也是可访问的:

fd.get(key.name)

希望这是有帮助的

是的,现在不可能。HTML5中有一些新文件api的草稿,但目前没有浏览器完全支持它。请参阅:,“设置文件大小限制”,了解为什么尝试在客户端执行此操作是毫无意义的。您无法访问访问者计算机上的本地文件系统,你最好希望apache限制文件大小,如果文件太大就停止上传。在客户端这样做是愚蠢的,除非你只是想方便用户。“您必须验证服务器端。您可以验证客户端。”有趣的是…这似乎可以工作:。唯一的问题是,没有flash、silverlight、gears等插件的IE8似乎会默认为HTML4。你不能在客户端这样做,并期望它一直工作。如果在服务器端检查也很重要,那么人们将使用修改后的表单副本(或其他客户端方式)上传超大文件。服务器端检查就像一把锁,客户端检查就像一张写着“请勿进入”的便利贴。先锁门,然后挂上“请勿入内”的标志。@user340140,只要客户端支持javascript,就可以。如果客户端不只是简单地声明站点需要启用javascript。Javascript有一个基本上不能被欺骗的文件读取器,它一点一点地读取,所以不必担心会收到另一个大小的小文件。服务器端是首选的“安全”方法,但我不明白javascript在谈到文件大小时是如何不那么安全的。您可以在服务器端检查可用性的基础上执行此操作,但无法使用客户端Javascript来保护它。仅使用Javascript(客户端)代码是不可行的,因为它很容易被绕过。需要服务器端逻辑。这是可能的。请参考问题。请尝试在代码中添加一些解释。仅使用JavaScript(客户端)代码是不可行的,因为它很容易被忽略。需要一个服务器端逻辑。只使用JavaScript(客户端)代码是不可行的,因为它很容易被绕过。需要一个服务器端逻辑。@AkshayAnurag客户端验证可防止浪费客户端时间和服务器带宽,它与安全无关,与UX有关的安全性从来没有比UX更重要。如果限制文件大小很重要,那么在后端执行。如果你真的想在前端做这件事,那么有更好的方法来做。@AkshayAnurag你只能在上传整个图像后在后端检查图像大小,如果这是一个巨大的图像,比如说16mb,客户端的连接速度很慢,用户将不得不在上传图像的整个过程中等待,直到最后出现错误。为了防止类似的事情发生,您需要在前端进行某种验证。如果我错了或遗漏了什么,请一定要让我知道,或者你有什么办法来防止?
$("#aFile_upload").on("change", function (e) {

    var count=1;
    var files = e.currentTarget.files; // puts all files into an array

    // call them as such; files[0].size will get you the file size of the 0th file
    for (var x in files) {

        var filesize = ((files[x].size/1024)/1024).toFixed(4); // MB

        if (files[x].name != "item" && typeof files[x].name != "undefined" && filesize <= 10) { 

            if (count > 1) {

                approvedHTML += ", "+files[x].name;
            }
            else {

                approvedHTML += files[x].name;
            }

            count++;
        }
    }
    $("#approvedFiles").val(approvedHTML);

});
var uploadField = document.getElementById("file");

uploadField.onchange = function() {
    if(this.files[0].size > 2097152){
       alert("File is too big!");
       this.value = "";
    };
};
<script type="text/javascript">
    $(document).ready(function () {

        var uploadField = document.getElementById("file");

        uploadField.onchange = function () {
            if (this.files[0].size > 300000) {
                this.value = "";
                swal({
                    title: 'File is larger than 300 KB !!',
                    text: 'Please Select a file smaller than 300 KB',
                    type: 'error',
                    timer: 4000,
                    onOpen: () => {
                        swal.showLoading()
                        timerInterval = setInterval(() => {
                            swal.getContent().querySelector('strong')
                                .textContent = swal.getTimerLeft()
                        }, 100)
                    },
                    onClose: () => {
                        clearInterval(timerInterval)

                    }
                }).then((result) => {
                    if (
                        // Read more about handling dismissals
                        result.dismiss === swal.DismissReason.timer


                    ) {

                        console.log('I was closed by the timer')
                    }
                });

            };
        };



    });
</script>