如何在php中限制表单提交的文件上传大小[重复]

Posted

技术标签:

【中文标题】如何在php中限制表单提交的文件上传大小[重复]【英文标题】:How to limit file upload size on form submission in php [duplicate] 【发布时间】:2020-07-03 00:54:26 【问题描述】:

我有一个表单,我希望允许文件小于或等于 50 MB。但是当我上传 1.60 MB 的文件时,它说最大文件大小请少上传。有什么建议吗?

文件大小为 1.60 MB,如果我打印文件数组,它显示 size = 1686220

// Attempt 1

if (!filesize($file_path) < 50000) 
  // max file size limit reached


// Attempt 2

if (!$file['size'] < 50000) 
  // max file size limit reached

【问题讨论】:

根据 Web 服务器,您可能还需要单独配置。例如:nginxclient_max_body_size 设置。 我不想编辑 php.ini 文件。我想在提交表单时检查文件大小。 【参考方案1】:

您也可以在提交之前使用jquery 进行操作:

    <form action="upload" enctype="multipart/form-data" method="post">

        Upload image:
        <input id="image-file" type="file" name="file" />
        <input type="submit" value="Upload" />

        <script type="text/javascript">
            $('#image-file').bind('change', function() 
                alert('This file size is: ' + this.files[0].size/1024/1024 + "MB");
            );
        </script>

    </form>

使用 PHP:

if (isset ( $_FILES['file'] ) ) 

    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];

    if (($file_size > 50*1024*1024))      
        $message = 'File too large. File must be less than 50 MB.'; 
        echo '<script type="text/javascript">alert("'.$message.'");</script>'; 
    

【讨论】:

它有效,谢谢。你能解释一下你在 php 一上做了什么以及我做错了什么吗?再次感谢。 @KevinJ 请检查您的小于符号它应该大于... :)

以上是关于如何在php中限制表单提交的文件上传大小[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP上传大文件解决办法

如何在php中允许有限大小的文件上传?

上传文件的限制[重复]

如何对 Web 表单文件上传进行压力测试?

修改PHP上传文件的大小限制

如何对Web表单文件上传进行压力测试?