核心思路:视频上传失败,问题可能出在以下几个地方
- 前端限制:上传表单或JS限制了文件类型或大小。
- 服务器配置限制:PHP、Nginx/Apache等服务器软件对上传文件的大小、类型有严格限制。
- DedeCMS后台设置:系统本身对上传目录、文件类型等做了限制。
- 文件权限问题:服务器上的上传目录没有写入权限。
- FFmpeg等组件缺失:DedeCMS的视频功能(如获取视频封面、时长)需要FFmpeg支持,但这通常不影响上传本身,只影响后续处理。
详细排查步骤(请逐一检查)
第一步:检查最常见的原因 - 服务器配置
这是导致上传失败的首要原因,特别是当文件较大时。

检查PHP上传限制
您需要修改 php.ini 文件,这个文件的位置可能因服务器环境而异,常见的有:
/etc/php.ini/usr/local/php/etc/php.ini- 通过
phpinfo()函数可以找到准确的路径。
在 php.ini 文件中,找到并修改以下几个参数:
; 允许上传文件的最大大小 (设置为 500M) upload_max_filesize = 500M ; POST数据最大大小 (必须大于或等于 upload_max_filesize) post_max_size = 500M ; 内存限制 (建议设置得大一些) memory_limit = 512M ; 最大上传文件数量 (如果同时上传多个文件需要调整) max_file_uploads = 20
重要提示:post_max_size 必须大于或等于 upload_max_filesize,否则即使 upload_max_filesize 设置得再大也无法上传。

检查Web服务器配置
对于 Apache 服务器:
检查 httpd.conf 文件或站点配置文件(如 conf-enabled/...),找到 LimitRequestBody 指令,这个指令限制了通过HTTP POST上传的文件总大小。
# 将此值设置得比 php.ini 中的 post_max_size 更大 # 设置为 600M (600 * 1024 * 1024 = 629145600) LimitRequestBody 629145600
对于 Nginx 服务器:
在 nginx.conf 或站点的配置文件中,找到 client_max_body_size 指令。
# 将此值设置得比 php.ini 中的 post_max_size 更大 # 设置为 600m client_max_body_size 600m;
如何应用更改?
修改完 php.ini 和 Web 服务器配置后,必须重启 PHP-FPM/Apache/Nginx 服务,更改才能生效。

第二步:检查DedeCMS后台设置
如果文件很小(比如几MB)上传失败,很可能是DedeCMS自身的设置问题。
检查附件设置 登录DedeCMS后台,进入 “系统” -> “系统基本参数” -> “附件设置”。
- 允许的文件类型:在这里确保
视频或多媒体类型被勾选,检查媒体类型或视频类型的输入框,确保包含常见的视频后缀,如mp4, flv, wmv, avi, mov, mkv等。- 路径:
系统->系统基本参数->附件设置->媒体类型/视频类型
- 路径:
- 附件目录设置:确保附件目录存在且有写入权限,通常默认是
/uploads/allimg/或/uploads/video/。- 路径:
系统->系统基本参数->附件设置->附件保存目录(../uploads/)
- 路径:
检查上传目录权限 这是非常关键的一步,DedeCMS需要向服务器上的目录写入文件。
您需要通过FTP或SSH工具,将以下目录的权限设置为 755,并将所有者设置为运行Web服务的用户(如 www-data, nginx, apache)。
/uploads/(主上传目录)/uploads/allimg/(图片目录)/uploads/video/(视频目录,如果存在)/uploads/media/(媒体目录,如果存在)/uploads/file/(其他文件目录)
如何设置权限?
-
使用FTP客户端:右键点击目录,选择“文件权限”,输入
755。 -
使用SSH命令:
# 将目录和其下所有文件的权限都设置为755 chmod -R 755 /path/to/your/dede/uploads/ # 将目录所有者改为www-data (根据你的服务器用户名修改) chown -R www-data:www-data /path/to/your/dede/uploads/
第三步:检查前端和浏览器问题
清除浏览器缓存和Cookie 浏览器缓存的旧JS或CSS文件会导致上传功能异常,尝试清除浏览器数据后重试。
检查浏览器控制台
- 按
F12打开开发者工具。 - 切换到 “网络”(Network) 选项卡。
- 尝试上传一个视频,然后观察网络请求。
- 如果上传失败,查看 “控制台”(Console) 选项卡,是否有红色的JavaScript错误信息,这些错误信息会直接告诉你问题所在。
尝试不同的上传方式 DedeCMS通常有“本地上传”和“远程网址”两种方式,如果本地上传失败,可以尝试将视频上传到你的云存储(如阿里云OSS、腾讯云COS),然后使用“远程网址”方式上传到DedeCMS,看是否成功,这有助于判断问题是出在本地服务器还是DedeCMS的上传处理脚本上。
第四步:检查DedeCMS文件和模板
检查上传相关的PHP文件
DedeCMS的视频上传通常由 media_add.php 或类似文件处理,检查这个文件是否存在,以及是否被错误修改或删除,您可以尝试从一个干净的DedeCMS程序包中复制一份 media_add.php 覆盖到您的网站根目录下。
检查编辑器配置编辑器(如百度编辑器)里上传视频,请检查编辑器的配置文件。
- 路径:
/include/ueditor/ - 在
ueditor.config.js文件中,找到videoMaxSize等配置项,确保大小限制是合理的。
总结与终极解决方案
如果以上所有步骤都检查过,问题依旧存在,那么可以尝试以下“终极”方法:
更换一个更简单的上传组件 DedeCMS自带的旧式上传组件可能存在兼容性问题,您可以尝试集成一个现代化的上传插件,SWFUpload 的替代品或基于HTML5的上传组件,但这需要一定的开发能力。
使用FTP手动上传,再数据库入库 这是一个绕过上传功能的“曲线救国”方法:
- 通过FTP将您的视频文件直接上传到
/uploads/video/目录。 - 登录DedeCMS后台,进入 ” -> “批量维护” -> “数据库内容替换”。
- 在“替换范围”里选择“所有内容模型”。
- 在“查找内容”里填入你刚刚上传的视频文件名,
my_video.mp4。 - 在“替换为”里填入完整的视频路径,
/uploads/video/my_video.mp4。 - 点击“开始执行”,这样系统就会帮你把内容里的视频链接修正过来。
升级或重装DedeCMS 如果您的网站版本非常老旧(比如DedeCMS 5.6或更早),可能存在未修复的Bug,考虑升级到一个稳定的新版本,或者如果问题严重,备份好数据后,重新安装一个干净的DedeCMS,再恢复数据。
希望这份详细的教程能帮助您成功解决问题!如果还有疑问,可以提供具体的错误提示信息,我可以给出更精确的判断。
