我不敢相信我不得不问这个,但由于某种原因,我的文件无法正常工作.它被称为ajax.php(虽然不介意这个名字),这里是确切的代码:
<?php
error_reporting(-1);
print_r($_POST);
print_r($_FILES);
?>
<form action="ajax.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input type="file" name="something" />
<input type="submit" value="Submit" />
</form>
当我提交而不附加文件时,它会在数组中打印数据.当我提交WITH文件时,没有数组填充.
我错过了什么明显的东西?
没有档案
Array ( [MAX_FILE_SIZE] => 30000 [first] => Bob [middle] => James [last] => Smith )
Array ( [something] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
用文件
Array ( )
Array ( )
期望与文件
Array ( [MAX_FILE_SIZE] => 30000 [first] => Bob [middle] => James [last] => Smith )
Array ( [something] => Array ( [name] => sample.jpg [type] => image/jpg [tmp_name] => whatever.jpg [error] => 0 [size] => 1248 ) )
UPDATE
它似乎正在另一台服务器上工作,它与我的WAMP完全配置,这意味着我的问题被错误地问了,因此我正在关闭它.对任何浪费时间愚蠢的人道歉.
最佳答案 这似乎是一个配置问题.我会说
post_max_size
太小了.这可以解释为什么上传文件时$_POST超全局为空.从手册……
If the size of post data is greater than
post_max_size
, the$_POST
and$_FILES
superglobals are empty.
您需要将此值设置为大于upload_max_filesize.例如,我的一台服务器有……
file_uploads=On
upload_max_filesize=12M
post_max_size=20M