尽管post_max_size和upload_max_filesize增加,但无法上传大文件

时间:2016-11-01 12:37:02

标签: php apache post upload ubuntu-16.04

我们需要能够通过我们的PHP网站上传最大50 MB的文件(存储在MySQL数据库中LONGBLOB - 我知道这很糟糕)。我将post_max_size增加到200Mupload_max_filesize增加到50M但是,即使是更小的文件也无法发布(500 KB是可以的,但不会上传2 MB左右)。

我怀疑这可能是一个记忆问题。我将memory_limit设置为256M(与仅允许发布非常小的文件的原始128M相比),但仍然不够。我可以将它设置为-1,但我宁愿将其设置为一个足以发布50 MB文件的值(单个帖子中最多可以发布四个)。

知道如何计算我需要设置的值吗?或者问题可能在其他地方?

感谢。

1 个答案:

答案 0 :(得分:0)

你必须执行查询,告诉你从客户端发送到mysql的语句的最大大小是什么:

 'SET @@global.max_allowed_packet = <bytes>'

所以对于50MB,你会得到50 * 1024 * 1024

对于pdo(如果你使用pdo):

$db->setAttribute(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, <bytes>);