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

Posted

技术标签:

【中文标题】如何在php中允许有限大小的文件上传?【英文标题】:How to allow limited size file upload in php? 【发布时间】:2014-09-11 18:49:53 【问题描述】:

我有一个网站托管在我无法访问的 PC 上。我有一个上传表单,允许人们上传最大 30MB 的文件。我的服务器端脚本是用 php 完成的。那么我如何在 php 中设置大小限制?

【问题讨论】:

您可以检查文件的大小。如果超过30MB,请勿上传 你必须在 php.ini 文件中改变 【参考方案1】:

你可以用它来限制你的文件大小..

ini_set("post_max_size", "30M");
ini_set("upload_max_filesize", "30M");
ini_set("memory_limit", "20000M"); 

【讨论】:

【参考方案2】:

在 PHP 中获取文件大小是通过以下方式完成的

$filesize = $_FILES['file']['size'];

这里可以获取文件大小,也可以查看要限制的大小

if($filesize<yourmaxsize)

    //do something

如果您希望上传 30MB 的文件大小,那么 有一些称为最大大小的东西,通常可以上传它是 2MB 我想你可以去 php.ini (配置文件)并将其大小更改为 30MB 或 50MB,无论你想要什么大小

【讨论】:

【参考方案3】:

在你的php配置文件php.ini中,有一个名为upload_max_filesize的参数,你可以把这个值改成你想要的。这将影响您的所有 php 应用程序。

【讨论】:

【参考方案4】:

尝试在 php.ini 文件中增加以下值,例如:

    memory_limit = 99M
    max_execution_time = 300
    upload_max_filesize = 30M
    post_max_size = 24M

【讨论】:

【参考方案5】:
if(isset($_FILES['uploaded_file'])) 

    $maxsize = 2097152;

    if(($_FILES['uploaded_file']['size'] >= $maxsize) || ($_FILES["uploaded_file"]))  
       //alert for large size
    

【讨论】:

你可以使用 $_FILES['uploaded_file']['size'] 来限制图片大小 ..其中uploaded_file 是图片标签的名称 如果有人上传 10 个文件,每个文件 2GB,该怎么办?也许应该应用一些post_max_sizeupload_max_filesize 这不允许任何事情,它会检查大小以便可能给出警告并且不回答“如何设置大小限制”的问题。

以上是关于如何在php中允许有限大小的文件上传?的主要内容,如果未能解决你的问题,请参考以下文章

DEDE 修改后台图集上传单个图片的大小限制

上传文件夹中的mp3文件?

php中允许的内存大小为33554432字节耗尽(尝试分配43148176字节)

IIS上传大文件

致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)

文件上传漏洞