如果数据太大,则未定义$_POST[';data';]


$_POST['data'] is not defined, if data is too large

我想在名为"data"的文本区域中发送约10MB的json数据。如果数据是1-2KB,那么它工作得很好。但是对于一个大json,$_POST['data']由于某种原因是空的。

否则我无法上传json,因为它是客户端生成的,不是一个文件。

我试过这个代码,但仍然不起作用:

form.setAttribute('enctype', 'multipart/form-data');

编辑

使用此设置,它仍然无法工作:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M

第2版

如果我从php5.4切换到5.6,那么我会得到一个500错误的页面,屏幕上没有写任何详细信息。

您需要在php.ini文件中将post_max_size更改为足够(20MB)。

默认情况下,PHP允许最大2MB的文件上传。

两个PHP配置选项控制最大上传大小:upload_max_filesizepost_max_size。如果需要,两者都可以设置为20兆字节文件大小的20M或更高。

尝试在中更改post_max_size

 php.ini
 post_max_size=20M

除了前面已经提到的之外,如果您在Apache 中运行,您也可以尝试在.htaccess中设置它

php_value upload_max_filesize 20M
php_value post_max_size 25M

其他方法,如果您以CGI/FastCGI运行,您可以尝试创建一个.user.ini,并将其放在upload.php脚本所在的位置

upload_max_filesize = 40M
post_max_size = 40M