我有问题。我正在创建自己的PHP应用程序,我想允许用户上传文件。
我的PHP
function make_upload() {
echo "<pre>";
print_r($_FILES);
echo "</pre>";
}
if (isset($_GET["upload"]) && $_GET["upload"] == "1") {
make_upload();
}
我的HTML
<form action="?upload=1" method="post" enctype="multipart/form-data">
<input name="file[]" type="file" multiple/>
<input type="submit" value="Upload"/>
</form>
当我尝试浏览并选择多个文件时,print_r($_FILES);
显示空白Array ( )
而不是包含我的文件的数组。之所以发生这种情况,是因为post_max_size
设置为8M
。如果我更改了post_max_size
,那么我可以选择更多图片。
我想分享我的应用程序以安装在网站上,但我不想告诉用户增加他们的post_max_size
。
是否有任何选项可以避免post_max_size
? (我看到在wordpress中我可以选择超过post_max_size
的图像 - 如何制作?)
答案 0 :(得分:2)
你可以通过.htaccess文件来完成。
php_value upload_max_filesize 200M
但有时主机提供商不允许您覆盖它。在这种情况下,您将获得500内部服务器错误
答案 1 :(得分:1)
您需要在php.ini中设置upload_max_filesize和post_max_size的值:
上传文件的最大允许大小。
upload_max_filesize = 40M;
必须大于或等于upload_max_filesize
post_max_size = 40M;
修改php.ini文件后,需要重启HTTP服务器以使用新配置。
如果你不能改变你的php.ini,那你就不走运了。您无法在运行时更改这些值;上传文件大于php.ini中指定的值将在执行到达ini_set时失败。
答案 2 :(得分:1)
当你调用
时,你没有传递数组来传递它if (isset($_GET["upload"]) && $_GET["upload"] == "1") {
make_upload($_FILES); // pass this $_FILES array to function
}
AND功能就像这样
function make_upload($_FILES) {
echo "<pre>";
print_r($_FILES); // will print array
echo "</pre>";
}