问题 #985💬 已回答提出于 2018年3月29日作者 tomichal1 个反应

GrapesJS 能否允许通过内置资产管理器上传任意文件?

快速解答作者 artf1

好问题,我觉得问题出在 [OpenAssets](https://github.com/artf/grapesjs/blob/dev/src/commands/view/OpenAssets.js#L14) 命令本身,应该在 'OpenImageAssets' 里重命名(确实它只渲染图片类型)。所以,你可以尝试创建一个更通用的命令(比如更通用的命令,或者只针对文档),看看这个[自定义](https://github.com/artf/grapesjs/wiki/Assets#customization)是否适合你。 如果你发现过程中有任何改进的地方,我很乐意和你讨论。

阅读下方完整回答 ↓

问题

我看了资产管理代码和维基,似乎尽管文档声称资产管理可以上传任意文件(即添加任意资产类型),但实际的资产管理代码在文件上传表单的文件输入栏上硬编码文件类型为“image/*”https://github.com/artf/grapesjs/blob/d5f0ae94dfd801a8c13cc0f6ce33e209f98f1c65/src/asset_manager/view/FileUploader.js#L8

这是个漏洞/疏忽吗?资产管理代码确实需要修改或修改,还是我漏了配置管理器接受与默认资产类型(目前仅图片?)以及任何任意资产类型的文件类型的方法?

我的用例是将链接组件连接到资产管理器,用户可以上传文档文件(pdf、doc、xls等),然后资产管理器更新目标链接组件的“href”属性。

回答(3)

artf2018年3月31日

好问题,我觉得问题出在 [OpenAssets](https://github.com/artf/grapesjs/blob/dev/src/commands/view/OpenAssets.js#L14) 命令本身,应该在 'OpenImageAssets' 里重命名(确实它只渲染图片类型)。所以,你可以尝试创建一个更通用的命令(比如更通用的命令,或者只针对文档),看看这个[自定义](https://github.com/artf/grapesjs/wiki/Assets#customization)是否适合你。 如果你发现过程中有任何改进的地方,我很乐意和你讨论。

tomichal2018年4月10日

@artf我创建了引用的拉取请求。我承认我的动机是针对具体的使用场景,但希望它的代码足够通用,能在核心编辑器代码库中被接受。

tomichal2018年4月10日

...哦,顺便澄清一下——还有一段与这个拉取请求并列编写的代码,存在于我项目的一个自定义插件里。它是一个插件,基本上可以实现以下功能:

  1. 自定义链接DOM 组件,使得通过RTE创建链接后,资产管理器会打开,此时可以上传任意资产并链接到新创建的链接组件。
  2. 自定义资产管理工具的图片 资产类型,使得在资产管理器中选择图片时,目标组件的“src”或“href”属性都会被更新。
  3. 向资产管理公司添加一种其他资产类型。如果资产管理器用于Link DOM 组件,则“其他资产类型”会与Image资产类型一起使用。

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。