Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据具体情况发布最大文件大小并上传最大文件大小_Php_Uploader - Fatal编程技术网

Php 根据具体情况发布最大文件大小并上传最大文件大小

Php 根据具体情况发布最大文件大小并上传最大文件大小,php,uploader,Php,Uploader,正在使用PHP上载程序,并且想知道是否有方法覆盖PHP.ini中特定脚本中的post_max_size和upload_max_filesize的默认值 我不想在php.ini中对其进行全面更改,因为虽然可以在我们的管理部分中对上传程序设置较大的限制,但我们不希望在公共部分设置较大的限制。除非每次访问都写入.htaccess文件,否则无法对每个用户更改此值 你为什么不干脆允许上传,如果上传太大就放弃呢 我确实找到了,但我不相信它,因为HTML不知道你在用这些输入做什么 编辑:基本上,由于Apach

正在使用PHP上载程序,并且想知道是否有方法覆盖PHP.ini中特定脚本中的post_max_size和upload_max_filesize的默认值


我不想在php.ini中对其进行全面更改,因为虽然可以在我们的管理部分中对上传程序设置较大的限制,但我们不希望在公共部分设置较大的限制。

除非每次访问都写入.htaccess文件,否则无法对每个用户更改此值

你为什么不干脆允许上传,如果上传太大就放弃呢

我确实找到了,但我不相信它,因为HTML不知道你在用这些输入做什么


编辑:基本上,由于Apache处理文件的实际物理传输,因此在用户提交表单之前,您需要Apache了解任何限制。由于HTML与此无关,您无法在那里设置它,而PHP仅在文件实际位于服务器上时才有用,因此您需要在上传文件后对其进行检查。对不起,我意识到我的第一个答案有点模糊。希望这能有更多帮助。

您应该可以通过.htaccess文件来完成这项工作。假设您希望允许管理员区域上传10Mb,公共端上传2 MB。我将默认值(在php.ini中)设置为2MB,然后在管理区域中,添加到htaccess文件:

php_flag upload_max_filesize 10M

编辑
这是为了在目录级别工作-我假设您的管理页面都是从mydomain.com/admin/运行的,在webroot中有一个物理/admin文件夹(您将.htaccess文件放在其中)

尝试使用php函数


您应该能够以这种方式覆盖php.ini文件中的默认值。只需确保在任何页面输出之前调用它。

实际上,由于上传的文件是在命中php代码之前接收和解析的,ini_集在这里对您没有帮助。