Alfresco共享:下载时缺少文件扩展名

Alfresco共享:下载时缺少文件扩展名,alfresco,alfresco-share,Alfresco,Alfresco Share,我们正在使用Alfresco 5.2 CE,在文件下载方面遇到问题 我们通过共享上传文件。然后,有时人们重命名上传的文件以删除标题中的文件扩展名 但是,当下载这些文件以获取本地副本时,文档将在不带扩展名的情况下下载 简单的解决方案是强制人们在上传文件后不重命名文件。 第二种方法是修改下载链接,以便在缺少文件扩展名时始终添加文件扩展名。 我一直在搜索要在哪里更改此内容,但没有找到。 有人知道怎么做吗 提前感谢我认为引入这种定制不是一个好主意,因为OOTB行为是正确和合理的 在Alfresco中下载

我们正在使用Alfresco 5.2 CE,在文件下载方面遇到问题

我们通过共享上传文件。然后,有时人们重命名上传的文件以删除标题中的文件扩展名

但是,当下载这些文件以获取本地副本时,文档将在不带扩展名的情况下下载

简单的解决方案是强制人们在上传文件后不重命名文件。 第二种方法是修改下载链接,以便在缺少文件扩展名时始终添加文件扩展名。 我一直在搜索要在哪里更改此内容,但没有找到。 有人知道怎么做吗


提前感谢

我认为引入这种定制不是一个好主意,因为OOTB行为是正确和合理的

在Alfresco中下载文档内容有很多不同的方法,您需要确保对所有方法进行定制,以获得一致的文档名称

如果您只对从Alfresco Share下载文档时获得的名称感兴趣,则应该自定义共享调用的webscript

使用浏览器中的开发工具,可以看到Alfresco执行以下调用:

这是使用共享作为“Alfresco”webscript(又名ACS)的代理

实际调用的webscript是:

/alfresco/service/slingshot/node/content/workspace/SpacesStore/86b142c2-7e51-4a49-9f5f-451e216e6d63/不带扩展名的文档?a=true

传递给WEBScript的名称被完全忽略。 wesbcript决定下载文件的名称,并设置响应头“内容处置”(请参阅)

如果您想找到实现该webscript的内容,最简单的方法是使用/Alfresco/service/index/all上提供的“Alfresco服务索引”

搜索webscript“slingshot/node/content”的路径。 您将在下面的屏幕截图中找到类似片段的内容(在不同版本的Alfresco中可能会有所不同):

单击屏幕截图中显示的链接。这将打开一个包含该webscript信息的页面

在这里,您可以看到该webscript的文件描述符是“org/alfresco/slingshot/download.get.desc.xml”。您应该能够在Spring上下文中找到id为“webscripts.org.alfresco.slingshot.download.get”的bean(老实说,我还没有检查过,但它应该在那里)

您还可以看到Java支持的类是:org.alfresco.slingshot.web.scripts.SlingshotContentGet

你可以从那里开始,看看你需要定制什么


我知道这不是一个完整的答案,但我希望它能为您提供一个很好的示例,说明在这种情况下以及在其他许多情况下,您需要遵循哪些步骤。

非常感谢您提供了非常有文档记录的解释。它不能解决问题,但非常有用。