2009-04-07 85 views
6

我有一个15个字段的PHP网页。用户将使用它来上传图像。我通过上传15张JPG图片来测试,每张图片大约2M,没有任何问题。在我启动的那一天,我将把这个网页转移到另一个Linux共享主机环境(仍然不确定哪一个)。是否有一些虚拟主机环境限制了一个http请求中总上传的大小?PHP - 最大总上传大小?

回答

19

是的。有(据我记得),这会影响上传大小限制3个左右的配置设置:

  • upload_max_filesize,这台对上传的文件
  • post_max_size大小,这限制了总的上限发布的数据的大小,包括文件数据
  • max_input_time,这限制的时间长度的脚本被允许处理输入数据,包括贴值

upload_max_filesize是每个I限制个人档案;但是,max_post_size是整个请求的上限,其中包含所有上传的文件。

不同的托管环境将设置不同的这些值,这可能会影响您部署后的能力。

0

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

+0

我的Linux机器上的默认限制为2 MB。 – Benson 2009-04-07 22:00:51

+0

嗯,但是当你购买主机时,他们会增加这个功能,如果他们没有,你可以让他们去做。 – 2009-04-07 23:03:24

+0

蹩脚的寄宿人不。 – ThiefMaster 2013-10-11 21:41:30

0

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

4

这是一个在php.ini中的设置。您可以在php info的输出中查找标记为“upload_max_filesize”的字段。为了得到一个PHP信息页面,创建一个PHP文件与下面的代码:

<?php phpinfo(); ?> 

This post在php.net为您提供了示例代码来获得这些信息,以及页面的其余部分是PHP配置的宝库选项。

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

虽然这是真的很多,这些不限制上传大小,他们把帽子放在上传过程 - 例如如果内存限制太低,那么在上传需要在内存中保留一段时间的大文件时会遇到问题。

6

上传限制通过php ini设置。你可以尝试让他们像这样:

$post_max_size = ini_get('post_max_size'); 
$upload_max_filesize = ini_get('upload_max_filesize'); 
-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);  
} 
0

如果您正在使用的nginx然后确保你有以下:

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

这里:

max_execution_time 
max_input_time 
memory_limit 
post_max_size 
upload_max_filesize 
max_file_uploads