zZ爱吃菜

[PHP] 记录一次 UEditor 富文本视频上传错误解决

写在前面

我在做 WEB 后台时,富文本组件主要是用百度的 UEditor,本次记录视频上传是各种错误时的 DEBUG 过程。

主要过程

主要错误:找不到上传文件

Ueditor 上传视频的流程

  • 入口函数是: ueditor/php/controller.php?action=uploadvideo 会引入
  • 在 controller.php 中 action=uploadvideo 会引入 include(“action_upload.php”);
  • 在 action_upload.php 中 action=uploadvideo 在读取了 config.json 中的配置信息后,会调用 Uploader.class.php
  • 在 Uploader.class.php 根据 uploadvideo 中的配置信息,知道最终调用 upFile() 方法。

上面就是确定文件上传思路,我遇到的问题是 找不到上传文件,我用的 Nginx 服务器之前已经遇到过文件大小限制,修改了 nginx 的配置信息,所以这次发现上传文件是 $_FILE 为空,后来发现是 php.ini 中有限制上传文件大小的限制导致了 $_FILE 置空。

修改 php.ini

  1. 通过 phpinfo(); 查看 file_uploads 是否开启,如果没有开启打开
  2. 查看 upload_max_filesize 到底是多少,我的设置为 32M 于是我统一修改为 100M
  3. 查看 post_max_size 是多少,我的设置为 32M 于是我统一修改为 100M

建议

Ueditor 上传文件视频大小限时最好统一,即 Ueditor 的 config.json 中的限制、php.ini 限制 以及 nginx 限制都统一,这样才不会出现类似上传文件大小导致的文件上传问题。

主要上传的错误信息如下:

主要的错误信息记录在 Ueditor/php/Uploader.class.php 中,主要包括

private $stateMap = array( //上传状态映射表,国际化用户需考虑此处数据的国际化
        "SUCCESS", //上传成功标记,在UEditor中内不可改变,否则flash判断会出错
        "文件大小超出 upload_max_filesize 限制",
        "文件大小超出 MAX_FILE_SIZE 限制",
        "文件未被完整上传",
        "没有文件被上传",
        "上传文件为空",
        "ERROR_TMP_FILE" => "临时文件错误",
        "ERROR_TMP_FILE_NOT_FOUND" => "找不到临时文件",
        "ERROR_SIZE_EXCEED" => "文件大小超出网站限制",
        "ERROR_TYPE_NOT_ALLOWED" => "文件类型不允许",
        "ERROR_CREATE_DIR" => "目录创建失败",
        "ERROR_DIR_NOT_WRITEABLE" => "目录没有写权限",
        "ERROR_FILE_MOVE" => "文件保存时出错",
        "ERROR_FILE_NOT_FOUND" => "找不到上传文件",
        "ERROR_WRITE_CONTENT" => "写入文件内容错误",
        "ERROR_UNKNOWN" => "未知错误",
        "ERROR_DEAD_LINK" => "链接不可用",
        "ERROR_HTTP_LINK" => "链接不是http链接",
        "ERROR_HTTP_CONTENTTYPE" => "链接contentType不正确",
        "INVALID_URL" => "非法 URL",
        "INVALID_IP" => "非法 IP"
    );
码字很辛苦,转载请注明来自L&N 博客《[PHP] 记录一次 UEditor 富文本视频上传错误解决》

评论