6

我有一个包含 15 个字段的 php 网页。用户将使用它来上传图像。我通过上传 15 张 jpg 图像进行了测试,每张大约 2 M,没有任何问题。在我发布的那天,我将把这个网页移动到另一个 Linux 共享主机环境(仍然不确定是哪个)。是否有一些网络托管环境会限制一个 http 请求中的总上传大小?

4

9 回答 9

21

是的。有(据我所知)三个左右的配置设置会影响上传大小限制:

upload_max_filesize是对每个单独文件的限制;但是,post_max_size是整个请求的上限,包括所有上传的文件。

不同的托管环境会以不同的方式设置这些值,这可能会影响您在部署时的能力。

于 2009-04-07T21:57:37.643 回答
6

上传限制是通过 php ini 设置的。您可以尝试像这样获取它们:

$post_max_size = ini_get('post_max_size');
$upload_max_filesize = ini_get('upload_max_filesize');
于 2009-04-07T22:00:09.340 回答
4

这是 php.ini 中的设置。您可以在 php 信息的输出中查看标记为“upload_max_filesize”的字段。要获取 php 信息页面,请使用以下代码创建一个 php 文件:

<?php phpinfo(); ?>

php.net 上的这篇文章为您提供了获取该信息的示例代码,页面的其余部分是 php 配置选项的宝库。

于 2009-04-07T21:57:27.957 回答
4

有一堆 PHP 设置限制了上传过程:

  • 文件上传
  • 上传最大文件大小
  • 最大输入时间
  • 内存限制
  • max_execution_time
  • post_max_size

我建议阅读此页面:http ://www.radinks.com/upload/config.php

虽然其中许多确实不限制上传大小,但它们确实限制了上传过程 - 例如,如果内存限制太低,那么您将无法上传需要在内存中保留一段时间的大文件的时间。

于 2009-04-07T21:57:56.473 回答
0

这将是不寻常的,但当然,请与您选择的任何托管公司联系。如果有限制,它肯定会高于 30 MB。

于 2009-04-07T21:54:06.903 回答
0

php.ini 指令“post_max_size”应该限制您可以在单个 POST 中发送多少数据。如果您在一篇文章中发布 15 张图片,我很确定这仍然被视为一篇文章。所以在上线之前检查这个值可能会很好。

于 2009-04-07T21:57:19.907 回答
0

如果您使用的是 nginx,请确保您具有以下内容:

server {
...
     client_max_body_size 100M;
....
}
于 2014-05-04T05:48:16.617 回答
0

这里:

max_execution_time
max_input_time
memory_limit
post_max_size
upload_max_filesize
max_file_uploads 
于 2016-08-16T18:42:56.627 回答
-1

到目前为止,我在这里看到了最好的解决方案,这是代码:

/**
 * Returns the maximally uploadable file size in megabytes
 *
 * @return  string
 */
function getMaxUploadSize()
{
   $max_upload    = (int)(ini_get('upload_max_filesize'));
   $max_post      = (int)(ini_get('post_max_size'));
   $memory_limit  = (int)(ini_get('memory_limit'));
   return min($max_upload, $max_post, $memory_limit);      
}
于 2013-04-25T17:10:25.433 回答