修正PNG无法上传错误
DEBUG
报错1:图片不是RGB格式
定位到操作:
// 我们的文件上传操作全部采用 KindEditor 来做
$kindEditor = new \KindEditor\KindEditor();
$fileInfo = $kindEditor->doAction($dataPathRoot, $dataUrlPrefix, 'upload');
看到这里,预测,只要修改一处,文件位置
/Users/plusman/Desktop/PlusMan/ffzy/bzf/protected/Vendor/KindEditor/KindEditor.php
貌似有更简单的方法
全文搜索报错关键词 图片不是RGB格式
定位到文件 /Users/plusman/Desktop/PlusMan/ffzy/bzf/protected/Core/Helper/Utility/FileUpload.php 可以看到如下代码
private $stateMap = array( //上传状态映射表,国际化用户需考虑此处数据的国际化
"SUCCESS", //上传成功标记,在UEditor中内不可改变,否则flash判断会出错
"文件大小超出 upload_max_filesize 限制",
"文件大小超出 MAX_FILE_SIZE 限制",
"文件未被完整上传",
"没有文件被上传",
"上传文件为空",
"POST" => "文件大小超出 post_max_size 限制",
"SIZE" => "文件大小超出网站限制",
"TYPE" => "不允许的文件类型",
"RGB" => "图片不是RGB格式",
"DIR" => "目录创建失败",
"IO" => "输入输出错误",
"UNKNOWN" => "未知错误",
"MOVE" => "文件保存时出错"
);
再在文件内搜索RGB,定位到
// 图片必须是 RGB 格式,不允许上传 CMYK 格式图片
if (in_array($this->fileType, $this->imageType) && !Image::isImageRGB($file["tmp_name"]))
{
$this->stateInfo = $this->getStateInfo("RGB");
return;
}
注释掉上述代码即可。
后续
为什么图片一定要是RGB,不能是CMYK?
我目前能知道的是
但是,因为这么一个原因,禁用掉CMYK,似乎理由还不够充分,求大神解释。