PHP - 最大上传总大小?

时间:2009-04-07 21:51:03

标签: php upload limit

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

10 个答案:

答案 0 :(得分:19)

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

upload_max_filesize是对每个文件的限制;但是,max_post_size是整个请求的上限,其中包括所有上传的文件。

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

答案 1 :(得分:6)

上传限制是通过php ini设置的。你可以尝试这样做:

$post_max_size = ini_get('post_max_size');
$upload_max_filesize = ini_get('upload_max_filesize');

答案 2 :(得分:4)

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

<?php phpinfo(); ?>
php.net上的

This post为您提供了获取该信息的示例代码,页面的其余部分是php配置选项的宝库。

答案 3 :(得分:4)

有许多限制上传过程的PHP设置:

  • file_uploads
  • 的upload_max_filesize
  • max_input_time设置
  • memory_limit的
  • 的max_execution_time
  • 的post_max_size

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

虽然其中很多都不限制上传大小,但它们确实限制了上传过程 - 例如如果内存限制太低,那么上传需要在内存中保留一段时间的大文件时会遇到问题。

答案 4 :(得分:0)

这是不寻常的,但当然,请检查您选择的任何托管公司。如果有限制,肯定会超过30 MB。

答案 5 :(得分:0)

php.ini指令“post_max_size”应该限制您可以在单个POST中发送多少数据。如果你在一个帖子中发布了15张图片,我很确定它仍然被认为是一个POST。因此,在上线之前检查这个值可能会很好。

答案 6 :(得分:0)

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

server {
...
     client_max_body_size 100M;
....
}

答案 7 :(得分:0)

这里:

max_execution_time
max_input_time
memory_limit
post_max_size
upload_max_filesize
max_file_uploads 

答案 8 :(得分:0)

您可以在本地主机或主机中签入php.ini(php设置)。

在配置设置中:

  • max_input_time
  • max_execution_time
  • memory_limit
  • post_max_size
  • max_file_uploads
  • upload_max_filesize

答案 9 :(得分:-1)

到目前为止,我已经看到了最佳解决方案here,这就是代码:

/**
 * 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);      
}