1. 环境准备:确保你的服务器环境满足要求。
  2. 下载与集成 UEditor:获取 UEditor 并将其放入你的 PHP 项目中。
  3. 后端配置:这是最关键的一步,需要修改 PHP 后端以处理视频上传。
  4. 前端使用:在页面中引入 UEditor 并测试上传。
  5. 常见问题与解决方案:解决上传过程中可能遇到的坑。

第 1 步:环境准备

在开始之前,请确保你的 PHP 服务器环境满足以下基本要求:

php ueditor 上传视频教程
(图片来源网络,侵删)
  1. PHP >= 5.3.0:UEditor 对 PHP 的版本有一定要求。

  2. fileinfo 扩展:PHP 需要开启 fileinfo 扩展,用于正确识别文件类型,这是 UEditor 判断文件是否合法的关键。

    • 检查方法:在 PHP 代码中执行 phpinfo();,查找 "fileinfo"。
    • 开启方法:编辑 php.ini 文件,找到 ;extension=fileinfo,去掉前面的分号 ,然后重启你的 Web 服务器(如 Apache 或 Nginx)。
  3. 上传目录权限:你需要一个用于存储上传文件的目录,并且该目录必须具有可写权限(通常是 755777777 有安全风险,不推荐生产环境使用)。

  4. php.ini 相关配置:根据你预期上传的视频大小,调整 php.ini 中的以下值:

    php ueditor 上传视频教程
    (图片来源网络,侵删)
    • upload_max_filesize:单个文件上传的最大大小。
    • post_max_size:POST 数据的最大大小,这个值必须大于或等于 upload_max_filesize
    • memory_limit:PHP 脚本可使用的最大内存,建议也设置得大一些。

    要允许上传最大 500MB 的视频,你可以设置:

    upload_max_filesize = 500M
    post_max_size = 500M
    memory_limit = 512M

第 2 步:下载与集成 UEditor

  1. 下载 UEditor 访问 UEditor 的官方 GitHub 仓库,下载最新版本的 PHP 版本。

  2. 解压并放置文件 将下载的压缩包解压,你会得到一个类似 ueditor-php 的文件夹。 将这个文件夹(或重命名后,ueditor)复制到你的 PHP 项目根目录或指定目录下,我们把它放在 public/ueditor 目录下。

  3. 引入 UEditor 到前端页面 在你希望使用 UEditor 的 PHP 页面中,引入 UEditor 的 JS 和 CSS 文件。

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>UEditor PHP 视频上传测试</title>
        <!-- 引入 UEditor 的 CSS -->
        <link rel="stylesheet" href="/ueditor/themes/default/css/ueditor.css">
        <style>
            body { font-family: Arial, sans-serif; padding: 20px; }
            #editor { width: 100%; height: 500px; }
        </style>
    </head>
    <body>
        <h1>UEditor PHP 视频上传测试</h1>
        <div id="editor"></div>
        <!-- 引入 UEditor 的 JS -->
        <script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.config.js"></script>
        <script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.all.min.js"></script>
        <!-- 实例化编辑器 -->
        <script type="text/javascript">
            var ue = UE.getEditor('editor');
        </script>
    </body>
    </html>

第 3 步:后端配置(核心步骤)

这是配置视频上传的关键,你需要修改 UEditor 的 PHP 后端代码,主要在 config.json 文件中。

  1. 找到 config.json 文件 该文件位于你刚刚解压的 UEditor 文件夹内的 php/config.json,路径类似:/ueditor/php/config.json

  2. 编辑 config.json 用一个代码编辑器打开这个文件,我们需要修改以下几个部分:

    • A. 配置上传路径 找到 "imageUrl""scrawlUrl" 等配置,你会发现它们都指向 "../upload/",这个路径是相对于 config.json 文件所在目录(即 php 目录)的,实际的文件上传目录是 项目根目录/ueditor/upload/

      你可以修改这个路径,例如改成 "../../uploads/",这样文件就会上传到 项目根目录/uploads/ 目录下。请确保这个目录存在并且有写入权限!

      // ... 其他配置 ...
      "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
      "imageFieldName": "upfile", /* 提交的图片表单名称 */
      "imageMaxSize": 2048000, /* 上传大小限制,单位B */
      "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
      "imagePathFormat": "/ueditor/php/../upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传路径格式 */
      // ... 其他配置 ...
    • B. 添加/修改视频上传配置 UEditor 已经内置了视频上传的配置,你只需要确保它被正确启用和配置,找到 "videoConfig" 部分:

      "videoConfig": {
          "serverUrl": "/ueditor/php/controller.php?action=uploadvideo", // 视频上传的接口地址
          "maxSize": 102400000, // 视频大小限制,单位B,这里是100MB
          "allowFiles": [
              ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
              ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"
          ] // 允许的视频格式
      },
      • serverUrl:这个 URL 指向处理视频上传的 PHP 脚本,默认值是 /ueditor/php/controller.php?action=uploadvideo,这个路径通常是正确的。
      • maxSize:根据你的 php.ini 设置,调整这里的大小限制(单位是字节 B),500MB 500 * 1024 * 1024 = 524288000
      • allowFiles:这里是允许上传的视频文件扩展名列表,你可以根据需要添加或删除。
    • C. 确认 controller.php 存在 UEditor 的后端处理逻辑都在 php/controller.php 文件中,这个文件会根据 action 参数(如 uploadvideo)来调用相应的处理函数。请确保这个文件存在并且没有被意外删除或修改。

    • D. (可选)配置远程图片抓取 如果你的内容中可能包含来自其他服务器的图片,并且希望将它们下载到自己的服务器上,可以配置 "catchImage",但这与视频上传关系不大,可作为了解。


第 4 步:前端使用与测试

  1. 打开你的 PHP 页面 通过浏览器访问你创建的那个包含 UEditor 的 PHP 页面。

  2. 找到视频上传按钮 在 UEditor 的工具栏上,找到视频上传的图标,它通常看起来像一个胶片或播放按钮的图标。

  3. 点击并上传视频 点击该图标,会弹出一个视频上传的对话框。

    • 点击 "选择视频" 按钮,选择一个本地视频文件。
    • 点击 "开始上传" 按钮。
  4. 观察结果

    • 成功:如果一切配置正确,上传进度条会走完,然后视频会插入到编辑器中,并显示一个播放器预览。
    • 失败:如果出现错误,请务必查看浏览器的开发者工具(F12),切换到 "Network" (网络) 标签页,找到名为 uploadvideo 的请求,查看它的 "Response" (响应) 内容,这里会返回 UEditor 后端输出的 JSON 信息,通常会包含具体的错误原因(如 "state": "文件大小超出限制")。

第 5 步:常见问题与解决方案

  1. 问题:上传失败,提示 "后端配置项没有正常加载,上传插件不能正常使用!"

    • 原因config.json 文件路径错误或无法被正确访问。
    • 解决:检查 ueditor.config.js 文件中的 serverUrl 配置,它应该指向你的 config.json 文件。
      // ueditor.config.js
      window.UEDITOR_CONFIG = {
          // ... 其他配置 ...
          serverUrl: "/ueditor/php/config.json" // 确保这个路径是正确的
      };

      确保服务器能够通过这个 URL 访问到 config.json 文件。

  2. 问题:上传失败,返回 state: "FILE_TYPE_NOT_ALLOWED"

    • 原因:你上传的视频文件扩展名不在 config.jsonvideoConfig.allowFiles 列表里。
    • 解决:打开 php/config.json,在 videoConfig.allowFiles 数组中添加你的视频文件扩展名。
  3. 问题:上传失败,返回 state: "请求大小超出系统最大限制"

    • 原因:上传的视频大小超过了 php.iniupload_max_filesizepost_max_size 的限制,或者超过了 config.jsonvideoConfig.maxSize 的限制。
    • 解决
      1. 检查并修改 php.ini 中的相关配置,并重启服务器。
      2. 检查并确保 php/config.json 中的 maxSize 值不小于你的 php.ini 设置。
  4. 问题:上传失败,返回 state: "保存上传文件失败"

    • 原因:最常见的原因是上传目录没有写入权限
    • 解决
      1. 确认 config.json"imagePathFormat" 等路径配置指向的目录存在。
      2. 使用 FTP 或 SSH 连接到服务器,给该目录赋予正确的写入权限(通常是 755),在 Linux 命令行下,你可以使用 chmod -R 755 /path/to/your/upload/directory
  5. 问题:视频能上传,但插入到编辑器后无法播放或显示为链接

    • 原因:UEditor 默认的视频插入方式是生成一个 <a> 链接,如果你想嵌入一个视频播放器,需要修改前端配置。
    • 解决:在实例化 UEditor 时,传入配置项,指定视频插入方式为 embed
      var ue = UE.getEditor('editor', {
          // ... 其他配置 ...
          videoEmbed: true // 强制使用 embed 方式插入视频
      });

通过以上步骤,你应该就能成功地在你的 PHP 项目中配置好 UEditor 的视频上传功能了,如果在操作中遇到其他问题,请仔细检查 config.json 的配置、服务器的权限设置以及浏览器的网络请求信息。