SharePoint 2013“下载副本”文档库的按钮/链接

时间:2015-06-19 16:31:38

标签: sharepoint sharepoint-2013

我在SP2013中有一个充满表格的文件库。我的用户对打开文件时弹出的“Check Out Required”框感到困惑。我一直告诉他们他们需要下载副本,但这似乎是一个问题。所以,我考虑添加一个“下载副本”按钮或链接到库,并提出了这个解决方案,它放在Web部件页面的一个片段中(来源:https://amalhashim.wordpress.com/2013/11/29/sharepoint-2013-document-library-download-a-copy-button/):

<script type="text/javascript">
function runAfterEverythingElse(){
var elementArray = document.getElementsByClassName("ms-vb-lastCell");
var idArray = document.getElementsByClassName("ms-listlink");
for(var i = 0; i < elementArray.length; i++)
{
elementArray[i].innerHTML = '<a unselectable="on" href="javascript:;" onclick="window.open(\''+ idArray[i]['href'] + '\')" class="ms-cui-ctl-large " aria-describedby="Ribbon.Documents.Copies.Download_ToolTip" mscui:controltype="Button" role="button" id="Ribbon.Documents.Copies.Download-Large"><span unselectable="on" class="ms-cui-ctl-largeIconContainer"><span unselectable="on" class=" ms-cui-img-32by32 ms-cui-img-cont-float"><img unselectable="on" alt="" src="/_layouts/15/1033/images/formatmap32x32.png?rev=31" style="top: -409px; left: -35px;"></span></span><span unselectable="on" class="ms-cui-ctl-largelabel">Download a<br>Copy</span></a>';
}  
}
_spBodyOnLoadFunctionNames.push("runAfterEverythingElse");  

这部分有效,因为它在每个文档旁边放了一个按钮,上面写着“下载副本”,但该操作实际上只是在Word中打开文件(而不是在浏览器中)。退房提示仍然存在,所以我知道它正在打开文件而不是下载副本。所以虽然我喜欢它的外观,但功能却不对。

在这里的另一个问题(How to trigger a file download when clicking an html button or javascript)的答案中,我找到了一些说明,但我无法弄清楚如何使用它们。我尝试创建一个工作流,创建一个下载链接并将其放在一个html格式的字段中,但无法正确格式化。

我真的不在乎解决方案是基于库的(每个文档上的字段可能是通过Nintex Workflow创建的)还是基于Web部件页面(脚本/片段)。我不熟悉jquery,javascript或其他编程语言。我知道HTML,并且可以通过CSS摸索我的方式,但我几乎是从互联网解决方案类型的女孩直接复制粘贴。我不是程序员,只是管理我们的SharePoint站点的人可能还有其他工作职能。 :)

非常感谢有关如何调整原始代码或如何更好地执行此操作的任何建议。我们正在使用SP2013。

1 个答案:

答案 0 :(得分:1)

@Kelly我使用Dataview webpart在sharepoint 2010中实现了这个解决方案。

Dataview webparts遍历doc库中的所有文档,下面的代码允许用户下载文件。

<a href="https://<SiteUrl>/_layouts/download.aspx?SourceUrl=https://<SiteUrl>/DocLibrary/Test.docx">Test.docx - Download a copy</a>

我希望它有所帮助。 :)