惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
U
Unit 42
B
Blog RSS Feed
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
腾讯CDC
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - 聂微东
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta

山月

在VS Code配置Obsidian風格Markdown編輯環境 – 山月 在Windows通过LM Studio使用Zotero MCP – 山月 禁用WordPress中Jetpack的AI助手按钮 – 山月 WordPress/MCP Adapter安装与维护指南 – 山月 WordPress服务器权限与所有权配置详解 – 山月 在Windows上為GnuCash啟用線上報價 (Finance::Quote) – 山月 Gitea Docker /var/empty 权限问题除错总结 – 山月 Bookwyrm由0.7.5升级至Production(e217a17)完整过程及疑难解答 – 山月 用正则表达式修改ruby标签 – 山月 为WordPress Syndication Links插件添加新的站点与图标的实现方法 – 山月 进入不断重启的Docker容器的命令行之方法 – 山月 自建Bookwyrm无法查询远端用户?——开启数据库扩展 – 山月 BookWyrm无法增添书本、作者、阅读进度……?——解决数据库自增序列问题 – 山月 俾Docker容器中的应用访问宿主机上的数据库服务 – 山月 QNAP NAS使用者注意!千万莫对MariaDB做这件事…… – 山月 解决Wikibase手动导入数据后无法新建实体之问题 – 山月 辰年再訪神保町 – 山月 PHP-FPM站点池配置调优以解决WordPress过度占用系统资源之问题 – 山月 如果Linux软件包常规升级失败——以python3-update-manager为例 – 山月 解决站点526报错:SSL证书配置错误 – 山月 風挾着陽光來 – 山月 和A.N.R.GHG插件说bye-bye – 山月 WordPress页面链接末尾出现“?swcfpc=1”后缀,是怎么回事? – 山月 安装、维护Monica PRM的一些笔记 – 山月 清理服务器空间的着手点 – 山月 关于Joplin Server文件上传大小上限 – 山月 WordPress站点部分地出现“严重错误”的一些可能的解法 – 山月 批量更改WordPress媒体URL – 山月 自托管WordPress编辑文章出现问题的排查法 – 山月 於Docker安裝sudo之方法 – 山月
如何优化PHP文件上传大小:完整指南 – 山月
2023-10-21 · via 山月

尝试上传大型文件到PHP应用程序时,可能会遇到大小限制的问题。还好,这个问题可以通过一些配置来解决。以下是关于如何调整PHP文件上传大小的详细说明。

修改php.ini配置

在调整配置之前,我们需要明确每个配置项的目的。

首先,需要在php.ini[php.ini是PHP的主配置文件,它为PHP运行时环境提供了各种配置选项。通过这个文件,开发者和系统管理员可以调整PHP的行为以满足特定的需求或优化性能。
php.ini对PHP配置所起到的一些主要作用如下:
1. 错误报告:可以决定哪些类型的错误应该被报告并显示,以及哪些应该被记录或忽略。
2. 资源限制:例如,可以设置脚本的最大执行时间 ( max_execution_time),上传文件的最大大小 ( upload_max_filesize) 或者脚本可以使用的最大内存量 ( memory_limit)。
3. 扩展管理:PHP有大量的扩展,可以通过php.ini来启用或禁用它们。
4. 数据处理:如POST数据的最大尺寸 ( post_max_size),以及全局变量、数据的自动转义等的配置。
5. 安全性:例如,禁用某些函数 ( disable_functions),或者设置文件系统的权限限制。
6. 会话管理:例如,会话数据存储的位置、垃圾回收的概率、会话的生命周期等。
7. 文件上传设置:如第2条提到的上传文件大小,以及文件上传临时目录等。
8. 动态加载的扩展:可以设置哪些扩展在 PHP 启动时动态加载。
9. 日期和时区:可以设置 PHP 使用的默认时区 (date.timezone)。
10. 连接和网络:例如,设置默认的socket超时时间或其他与网络相关的配置。
php.ini的功能不止于此。
总之,该文件提供了一个中心化的地方来配置PHP的各种行为和特性,使其更易于管理和调优。
另外,如果对PHP进行自定义配置,建议先备份原始的php.ini文件,然后再进行修改。]
文件中查找以下行:

upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 20M

这些配置是PHP默认的文件上传大小设置。

以下是表单配置。确保上传的<form>中有以下行。这是一个隐藏字段,用于限制表单上传的文件大小:

<input type="hidden" name="MAX_FILE_SIZE" value="500000">

对于Apache 2服务器

若使用的是Apache 2,需要修改/etc/httpd/conf.d/php.conf中的LimitRequestBody。例如,如果希望限制为5MB,可以将524288(512×1024)更改为5×1024×1024。

PHP执行时间

PHP的最大执行时间也可能会影响上传,但可以通过以下PHP代码临时设置它:

<?php
ini_set('max_execution_time', '600');
ini_set('post_max_size ', '100M');  
ini_set('upload_max_filesize', '200M');  
?>

更多php.ini设置

php.ini中,还可以找到以下与文件上传相关的参数:

file_uploads = on ; 是否允许通过HTTP上传文件的开关。默认为on即是开
upload_tmp_dir ; 文件上传至服务器上存储临时文件的所在,如未指定则用系统默认的临时文件夹
upload_max_filesize = 200M ; 即允许上传文件大小的最大值。默认为2M

Data Handling区域,还有:

post_max_size = 100M ; 指通过表单post给PHP的所能接收的最大值,包括表单里的所有值。默认为8M

如果希望上传大于8M的文件,除了上述设置外,还需要关注以下参数:

max_execution_time = 600 ; 每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8M ; 每个PHP页面所吃掉的最大内存,默认8M

示例配置

以下是一则成功配置的示例:

upload_max_filesize   300M
post_max_size         350M
memory_limit          400M
max_execution_time    600
max_input_time        600

这是一个适用于大型文件上传的配置示例。

注意:配置时,确保memory_limit大于post_max_size,而post_max_size大于upload_max_filesize。这是因为memory_limit是脚本所能使用的最大内存量,post_max_size是POST请求体的最大尺寸,而upload_max_filesize是上传文件的最大尺寸。确保这三者的关系可以避免上传过程中的错误。

总而言之,通过适当配置PHP,还是可以轻松地上传大型文件的。