一,内容管理 关于自定义字段类型媒体文件media 对上传类型的限制问题
1,文件太大无法上传
系统设置-》全局设置中找到媒体文件,最大上传文件大小(MB)进行设置即可。
系统设置->全局设置->媒体文件
二,无法上传视频文件
这个问题没有找到后台配置的位置,直接改的默认属性,如果有谁知道,望告知!
处理问题的思路:
根据上传操作,获取到了上传操作路径:
这个是内容管理-》媒体文件页面直接操作上传 //http://bwg.home.com:8080/administrator/index.php?option=com_media&format=json&mediatypes=0&task=api.files&path=local-images%3A%2Fstatic%2Fintroductionvideo
这个是新增一篇文章,在文章编辑中操作上传 //http://bwg.home.com:8080/administrator/index.php?option=com_media&format=json&mediatypes=0,1,2,3&task=api.files&path=local-images%3A%2Fstatic%2Fintroductionvideo
发现了两者参数差异:mediatypes=0 mediatypes=0,1,2,3
根据 mediatypes 的调用,找到 \libraries\src\Form\Field\MediaField.php 文件
public function setup(\SimpleXMLElement $element, $value, $group = null)
中设置的初始值:
t
h
i
s
−
>
t
y
p
e
s
=
i
s
s
e
t
(
this->types = isset(
this−>types=isset(this->element[‘types’]) ? (string) $this->element[‘types’] : ‘images’;
默认只允许上传图片images。
现在需要修改为,允许图片、视频、音频、文件类型文件上传
t h i s − > t y p e s = i s s e t ( this->types = isset( this−>types=isset(this->element[‘types’]) ? (string) $this->element[‘types’] : ‘images,audios,videos,documents’;
直接把默认值修改为“images,audios,videos,documents”;
images,audios,videos,documents==这四个值是在代码逻辑中查看到:
\libraries\src\Form\Field\MediaField.php 文件
public function getLayoutData() 中有判断。
总结:时间有限,上面的遇到的问题只能是临时解决方案,也没有更深入的了解背后的机制,如有更好的处理方式,望告知!!