将 .svg 文件扩展名添加到“图像文件”

我使用的 Discourse 论坛之一的默认设置为只允许“图片文件”,但 .svg 文件却显示“未授权”,尽管 .svg 文件是图片,只是矢量而非栅格,这意味着它们可以缩放而不会损失质量。此外,当我将 .png 转换为 .svg 时,文件大小也相当,甚至更小:

  • .png 文件大小为 8190 字节。
  • .svg 文件大小为 4273 字节。

那么,.svg 文件未被视为图片文件的原因是什么?

2 个赞

管理员设置了接受的文件类型。SVG 默认不在其中,但可以从 authorized_extensions 设置中添加。如果您询问管理员,他们可能会考虑添加它?

5 个赞

问题是,管理员会忽略直接消息,引用其中一条:

而且他们会忽略论坛上 99.9% 的帖子。

2 个赞

是否有#site-feedback类别可以提出此类请求?或者是否可以从论坛 /about 页面的电子邮件地址联系他们?

1 个赞

除非对文件进行清理,否则这是否存在潜在的安全风险?

1 个赞

恐怕我不知道那个问题的完整答案,但我认为 Discourse 在上传过程中会进行一些检查?

2 个赞

这不是一个可以在这里解决的问题。如果你不喜欢论坛的运行方式,那就不要使用它,或者自己创建一个。

4 个赞

@pfaffman,我认为这是:合理的默认设置意味着减少重复工作。我可以要求所有管理员启用 SVG 上传,就像其他人所做的那样:

…或者我可以要求 Meta 将其设置为默认值。关于这一点,我同意 @Ondrashek06 的观点。

四年后,我完全同意!

3 个赞

@pfaffman,谢谢!

1 个赞

有可能存在我不理解的原因,导致默认包含它是个糟糕的主意。:person_shrugging:

1 个赞

@pfaffman,我推测是经过清理的,因为这是一个非常强大的格式。但是,考虑到内联HTML是支持的,并且其他论坛支持SVG,这肯定不是不可逾越的,尤其是因为它们似乎在这里是允许的:

为了演示,下面是一个SVG:

1 个赞

所以……

SVG 已得到清理。

在我阅读代码时,我认为清理功能相当强大,这让我有信心在我的网站上启用它。

我理解 CDCK 不想为所有人做出这个决定,尤其因为清理后的 SVG 并不满足 SVG 的所有需求。例如,在我的网站上,有时人们会发布用于激光切割的 SVG,而清理过程中应用的修改有时会悄无声息地破坏它们。

所以我理解你们不愿默认启用它的原因,尽管在我进行配置时,这对我来说只是一个小小的麻烦。

3 个赞

@mcdanlj,Blender(可能通过插件)允许文件上传。这不适用于默认情况,但可能会帮助您的论坛,因为您的 SVG 主要用于内联渲染以外的用途。

1 个赞

在我的情况下,我们希望不时地同时拥有这两种行为……因此,我们会让用户上传一个 ZIP 文件,其中重要的是我们要查看一个字节完美的文件。十次中有九次,我们更希望在不下载的情况下在线查看,即使进行了清理。

(是的,我们希望两全其美!:rofl:

@mcdanlj,我不确定渲染未经处理的内联 SVG 是否在理论上可行。

我不是那个意思;未经处理的内联 SVG 是 CSS 攻击的向量。

我的意思是,在上传时可以选择将其清理为显示 SVG,还是不渲染而作为上传文件。但实际上,更完美的是清理过的内联显示,但如果你点击下载,你会得到原始的未经处理的版本。

这不是一个严肃的功能建议。它只是针对一个奇怪的用例的完美解决方案。:smiley:

1 个赞

@mcdanlj,因为,我认为插件是 Blender 文件上传功能的提供者,如果对你也一样,那值得在插件存储库的 issue tracker 中发布一个 FR。如果不是,我同意那会很有用,但可能最好单独发帖跟踪。

感谢 @pfaffman,我已经将此问题提请团队注意,我们同意这现在作为默认设置是合理的。我已经批准并合并了 PR :slight_smile:

2 个赞