2011-11-26 70 views
1

我已经上传两个PDF文件到服务器在PHP中。但他们正确上传,但上传大文件时,我得到一个错误。 Iam使用mysql服务器如何上传大文件(100 MB)在PHP

如何在php中上传大文件(100 MB)?

+0

你有什么错误,你使用任何类型的上传? – coder

+0

您可能需要在php.ini中更改'max_upload_size'和'post_max_size'。搜索堆栈溢出了许多相关的答案。 –

+0

可能重复[在PHP中上传最大大小?](http://stackoverflow.com/questions/3263480/upload-max-size-in-php) –

回答

6

从php.ini中的默认设置:

; Maximum allowed size for uploaded files. 
; http://php.net/upload-max-filesize 
upload_max_filesize = 2M 

改变,如果你想要更大上传此值。

我不完全确定,但我不认为ini_set会在这种情况下工作。您将需要直接访问为php.ini

2

要添加到汤姆·范德Woerdt的回答有关的upload_max_filesize:

机会是,默认情况下执行的限制也将有改变,或当你在脚本会超时上传一个大文件。

还应考虑:

post_max_size max_input_time max_execution_time

3

我不会改变的upload_max_filesize。使用HTTP POST上传大文件不会给您任何有关上传剩余时间的任何反馈意见等。对于大多数浏览器而言,页面只是在文件上传时挂在那里。如果客户端上传文件需要很长时间,您还会遇到脚本超时问题。取决于您是否以后使用PHP处理文件,您也可能遇到内存耗尽的问题。

我们使用PLUpload http://www.plupload.com将文件分块成小块并上传每个块。在服务器上,PHP脚本将获取每个POST文件块并将其附加到现有块以重建另一侧的大文件。我们已经测试了几百MB的文件。这样做效果更好,对用户来说更好用户体验。

利奥

1

的建议设置max_upload_size和post_max_size设置是正确的,但你可能还是会遇到一些问题的安装。设置这些值时要记住的一件事是post_max_size至少是max_upload_size值的两倍。换句话说,如果将max_upload_size设置为100mb,那么post_max_size必须为200mb,否则设置将被拒绝,引擎将使用2mb和8mb的默认设置。另外,您需要确保memory_limit至少是max_upload_size的大小。如果你打开帖子并上传大小,但你没有分配足够的内存,那么你仍然会遇到问题。

2

您可能需要更改php.ini文件中的下列选项:

  1. 的upload_max_filesize(在php.ini或。htaccess的唯一,将不使用的ini_set工作())

  2. 的post_max_size(同上)

  3. memory_limit的(同上)

下面是每个选项的说明:

有3个设置PHP使用,限制你的上传能力:

post_max_size

这是表单上发送的所有文件的最大合并大小。如果您的表单上有2个文件字段,则2个文件的总文件大小不得超过post_max_size值。

的upload_max_filesize

这是每个单独的文件的大小限制。

memory_limit的

PHP脚本有一个内存限制,一般来讲这样可以防止一些上传的工作。限制应该设置在一个合理的水平,当然你不需要20mb的简单'hello world'脚本。如果您发现上传仍然无效,请尝试缓慢增加此值。