我有一个网站托管在我无法访问的PC上。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。

每次我尝试上传文件时,都会收到一个错误,声称文件超过了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改。htaccess文件,我没有访问权限,所以这将不起作用。其他人建议我添加一个自定义的php.ini文件到我的根目录,但这并不奏效。还有其他建议吗?


当前回答

有了WAMP,一切都很简单

WAMP图标> PHP > PHP设置> upload_max_filesize = nM > n = (2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M,或选择(自定义))。

服务自动重新加载。

但是,如果您确实没有访问服务器的权限,您可能想要尝试编写一个分块API。

下面是如何做到这一点的图片。

其他回答

你需要在php.ini中设置upload_max_filesize和post_max_size的值:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

修改php.ini文件后,需要重新启动HTTP服务器才能使用新的配置。

如果您不能更改php.ini,那么您就不走运了。您不能在运行时更改这些值;如果上传的文件大于php.ini中指定的值,那么在执行到调用ini_set时将会失败。

请参阅核心php.ini指令的描述。

你需要检查三件事。

php.ini配置文件中的Upload_max_filesize, memory_limit和post_max_size。

所有这三个设置都限制了PHP可以提交和处理的数据的最大大小。

通常post_max_size和memory_limit需要大于upload_max_filesize。


所以你总共需要检查三个变量才能完全确定。

我知道这个问题有很多答案,但在php.ini中,大多数变量只用于更改最大上传文件大小

由于有时用户更新了最大文件大小,但没有更新内存限制,导致中断导入过程。

因此,我在这里列出了所有需要更改的相关变量以及最大文件大小

max_execution_time memory_limit display_errors post_max_size upload_max_filesize max_input_time


注意:从现在开始,ini存储在这样的文件夹中 /etc/php/8.1/apache2/php.ini

您可以通过.htaccess文件更改它。

.htaccess文件与你的.php文件存储在同一个目录下。它们修改该文件夹和所有子文件夹的配置。你只需在你选择的目录中创建一个.htaccess文件(如果存在的话可以修改它)就可以使用它们。

下面的代码可以提高上传限制(如果服务器提供商允许通过.htaccess修改PHP配置)。

php_value upload_max_filesize 40M
php_value post_max_size 42M

由于全局更改有一定风险,因此我尝试为单个脚本big_file_upload.php增加最大上传值。出于某种原因,ini_set没有帮助。经过一番研究,我得出了这个结论。把它放在。htaccess(除非通过AccessFileName更改名称)

<If "%{REQUEST_URI} == '/subfolder/big_file_upload.php'" >
php_value upload_max_filesize 200M
php_value post_max_size 200M
</If>
<Else>
php_value upload_max_filesize 1M
php_value post_max_size 1M
</Else>

为我工作。