背景
CRMEB商城系统配置腾讯云云存储后,代码中默认增加自定义header(非必填)。如果业务中上传的不是图片,而是mp4、excel等文件,会导致无法预览。
方案
找到代码位置屏蔽即可。
项目根目录/crmeb/services/upload/extend/cos/Client.php
/**
* 上传文件
* @param string $key
* @param $body
* @return string[]
* @author 等风来
* @email 136327134@qq.com
* @date 2022/9/29
*/
public function putObject(string $key, $body)
{
$this->checkOptions();
$url = $this->makeUpUrl();
$header = [
// 'Content-Type' => 'image/jpeg', // 屏蔽这里即可
'x-cos-acl' => $this->cosacl,
'Content-MD5' => base64_encode(md5($body, true)),
'Host' => $url
];
$imageUrl = ($this->ssl() ? 'https://' : 'http://') . $url . '/' . $key;
$res = $this->request($imageUrl, 'PUT', ['body' => $body], $header);
if ($res && !empty($res['Message'])) {
throw new UploadException($res['Message']);
}
return [
'name' => $key,
'path' => $imageUrl
];
}
本文由 ben 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 8, 2024 at 06:26 pm