如何在php中的服务器上以块的形式上传大尺寸文件?

时间:2013-09-24 05:05:03

标签: php file-upload

如何将大块文件分成块并将其上传到服务器?

我尝试使用简单的move_uploaded_file()函数,但它只上传了2 MB的大小。

4 个答案:

答案 0 :(得分:0)

使用此方法增加上传最大文件大小限制:

方法#1:编辑php.ini

编辑你的php.ini文件(通常存储在/etc/php.ini或/etc/php.d/cgi/php.ini或/usr/local/etc/php.ini中):

# vi /etc/php.ini

示例输出:

memory_limit = 32M
upload_max_filesize = 10M
post_max_size = 20M

保存并关闭文件。重启apache或lighttpd web服务器:

service httpd restart

OR service lighttpd restart

方法#2:编辑.htaccess

在根目录中编辑.htaccess文件。当您无权访问php.ini文件时,这很有用。在此示例中,/ home / httpd / html被视为根目录(您也可以在本地创建.htaccess文件,而不是使用ftp / sftp / scp客户端上传它):

# vi /home/httpd/html/.htaccess

追加/修改设置如下:

php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 32M

保存并关闭文件。

方法#3:编辑PHP文件

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

在此之后你可以ckeck:

<?php
   phpinfo();
?>

检查这是否有块上传 plupload

答案 1 :(得分:0)

这是一个可以帮助您使用模式字符串分块大文件并在服务器级重新组装它们的类。

The class

由于你没有提到你所说的文件格式,所以课程需要进行一些调整和测试才能让你工作。

答案 2 :(得分:-1)

尝试将此代码置于代码顶部

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

答案 3 :(得分:-1)

您实际上可以更新您的php ini以允许上传更大的文件

Maximum allowed size for uploaded files.
upload_max_filesize = 100M;

Must be greater than or equal to upload_max_filesize
post_max_size = 100M;

但是如果你仍然需要上传大文件并且chunking是强制性的,那么有很多javascript实现,其中之一是:

http://www.plupload.com/