如何在PHP中上传大于2MB的文件,我在互联网上搜索并更改了php.ini
文件,该行是:"upload_max_filesize = 200M"
,但我仍然无法上传2 MB文件
似乎有什么问题?
请帮帮我。谢谢。
答案 0 :(得分:8)
曾几何时我的WAMP服务器遇到了这个问题,当我搜索解决方案时,我偶然发现了这个问题。所以,如果有人有同样的问题,这是我的工作解决方案,我希望这有帮助:
我正在使用WAMP堆栈。通过阅读上面的评论,您也在使用WAMP堆栈。如果您不知道,WAMP服务器有两(2)个php.ini(在PHP目录和Apache目录中)配置,一个用于CLI,另一个用于Apache本身(参见php.ini on WAMP server)。所以,我创建了info.php以检测我的服务器使用哪个php.ini,在我的情况下是Apache目录中的那个(参见Which PHP Ini file does my WAMP webpage uses?)。
打开服务器使用的php.ini ,正如@Pascal Martin建议的那样,更改upload_max_filesize
并设置{{1然后重新启动你的服务器。
再次检查您的info.php,确保post_max_size
和upload_max_filesize
的值已更改为您想要的值。
重启Apache。
这对我有用,希望得到这个帮助。
答案 1 :(得分:2)
正如您猜测的那样,您必须设置upload_max_filesize
...
但是你还必须设置post_max_size
(引用):
设置允许的帖子数据的最大大小。
此设置也会影响文件 上传。要上传大文件,这个 值必须大于upload_max_filesize
强>
答案 2 :(得分:1)
获取你的php.ini-dist文件,
答案 3 :(得分:0)
还有其他选项可以限制这一点:
max_input_time = 600
php_value max_execution_time = 600
post_max_size = 200M
(...并重启Apache)
答案 4 :(得分:0)
将以下代码放在.htaccess文件的旁边并保存。
php_value upload_max_filesize 200M
php_value post_max_size 200M
php_value max_input_time 2000
答案 5 :(得分:0)
要上传较大的文件,需要从php.ini文件更改/增加post_max_size和upload_max_filesize指令的值。
upload_max_filesize = 200M
post_max_size = 201M
这会将单个文件的上传限制增加到200 MB,默认值为2 MB。
答案 6 :(得分:0)
要上传大文件(> 5MB),我使用卡盘上传方法。
/**
* @param $file
* @param $fileSize
* @param $name
* @return int
*/
public function chunkUpload($file, $fileSize, $applicantID, $name) {
$targetFile = 'upload/'. $name;
$chunkSize = 256; // chunk in bytes
$uploadStart = 0;
$handle = fopen($file, "rb");
$fp = fopen($targetFile, 'w');
# Start uploading
try {
while($uploadStart < $fileSize) {
$contents = fread($handle, $chunkSize);
fwrite($fp, $contents);
$uploadStart += strlen($contents);
fseek($handle, $uploadStart);
}
fclose($handle);
fclose($fp);
return 200;
} catch (\Exception $e) {
return 400;
}
}
答案 7 :(得分:0)
以这种方式更改了服务器设置...
memory_limit = 250M //The maximum amount of memory in bytes a script is allowed to allocate.
max_input_time = 600 //The maximum time in seconds a script is allowed to parse input data.
max_execution_time = 600 //The maximum time in seconds a script is allowed to run before it is terminated.
post_max_size = 200M //The maximum size in bytes of data that can be posted with the POST method. Typically, should be larger than upload_max_filesize and smaller than memory_limit.
upload_max_filesize = 100M //The maximum size in bytes of an uploaded file.
答案 8 :(得分:-2)
尝试在PHP脚本中设置它(在顶部)..
ini_set("upload_max_filesize", "255M");
ini_set("post_max_size, "256M");