使用JavaScript在SharePoint 2010文档库中创建文档副本

Create a copy of document in SharePoint 2010 document library using JavaScript

本文关键字:文档 创建 副本 2010 JavaScript SharePoint 使用      更新时间:2023-09-26

我想在SharePoint文档库中创建一个文档副本。
基本上让我们假设有一个模板,每个用户都会通过点击它来打开文档。我想创建一个文件用户已点击并打开该文件进行编辑的副本。
我尝试过使用SharePoint的JavaScript客户端对象模型。但是这些示例是用于操作列表项的,而不是用于文档库的。
谁能指出我可以用来操作文档库中的文件的任何来源

一个限制是我需要使用JavaScript 对象模型web服务来实现此功能。即NO服务器端代码

下面是我得到的代码

    我计划使用的方法是复制现有的文件对象
  1. 重命名
  2. 保存到其他文档库

请忽略格式化,因为我无法正确地做它,这是在开发代码

    <script type="text/javascript">
 var clientContext = null;
        var web = null;
        var meetingItems = null;
        var filePath = null;
        var file = null;
        debugger;
        ExecuteOrDelayUntilScriptLoaded(Initialize, "sp.js");

        function Initialize() {
            clientContext = new SP.ClientContext.get_current();
            web = clientContext.get_web();
            this.list = web.get_lists().getByTitle("Documents");
            clientContext.load(list, 'Title', 'Id');
            var queryStart = "<View>"+ "<Query>"+ "<Where>"+ "<Eq>"+ "<FieldRef Name='Title'/>" + "<Value Type='Text'>"; 
                    var queryEnd = "</Value>"+ "</Eq>"+ "</Where>"+ "</Query>"+ "</View>";
camlQuery = new SP.CamlQuery(); 

queryMeeting = queryStart + 'DevCookbook'+ queryEnd;
camlQuery.set_viewXml(queryMeeting);
meetingItems = list.getItems(camlQuery);
clientContext.load(meetingItems);
            clientContext.executeQueryAsync(Function.createDelegate(this, this.onListLoadSuccess), Function.createDelegate(this, this.onQueryFailed));
        }
        function onListLoadSuccess(sender, args) {
        filePath = meetingItems.get_item(0).get_path();
        file = meetingItems.get_item(0);
        debugger;
        clientContext.load(file);
            clientContext.executeQueryAsync(Function.createDelegate(this, this.onFileLoadSuccess), Function.createDelegate(this, this.onFileFailed));
           // alert("List title : " + this.list.get_title() + "; List ID : " + this.list.get_id());
           // doclist();        
        }
function doclist()
{
var path = file.get_title();
path = meetingItems.get_item(0).get_file().get_title();
}
        function onQueryFailed(sender, args) {
            alert('request failed ' + args.get_message() + ''n' + args.get_stackTrace());
        }
        function onFileLoadSuccess(sender, args) {
        debugger;
      alert("List title : " + this.list.get_title() + "; List ID : " + this.list.get_id());

        }
        function onFileFailed(sender, args) {
            alert('request failed ' + args.get_message() + ''n' + args.get_stackTrace());
        }

        </script>

我使用copy webservice来完成这个功能。
方法是结合对象模型和JavaScript函数

    从模板库中复制文件。
  1. 使用"CheckoutDocument"功能签出文件
  2. 在后台添加元数据
  3. 显示编辑元数据弹出给用户使用

    var oDialog = {url:". ./图书馆/形式/Edit.aspx吗?ID=" + itemID,标题:"创建一个新文档"};SP.UI.ModalDialog.showModalDialog (oDialog)

  4. 用户输入检查文件后