代码改变世界

SharePoint 2010 使用客户端对象模型ECMAScript复制文件

2011-11-08 16:42  四毛的家  阅读(411)  评论(0编辑  收藏  举报

/// <reference path="D:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\MicrosoftAjax.js" />
/// <reference path="D:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\SP.js" />
/// <reference path="D:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\SP.Core.js" />
function copyFile(sourceUrl, destinationUrl) {
    var ctx, file, notifyId;

    ctx = SP.ClientContext.get_current();

    file = ctx.get_web().getFileByServerRelativeUrl(sourceUrl);
    ctx.load(file);

    // Set a notification to the user that we are going to copy the file.
    notifyId = SP.UI.Notify.addNotification('Copying file...', true);

    ctx.executeQueryAsync(
        function (sender, args) {
            // File loaded. Now we want to copy the file. We'll use a nested AJAX call
            file.copyTo(destinationUrl, true);

            ctx.executeQueryAsync(
                function (sender, args) {
                    // File copied successfully!
                    SP.UI.Notify.removeNotification(notifyId);

                    // Let the user know that the operation was successful
                    SP.UI.Notify.addNotification('File copied successfully', false);
                },
                function (sender, args) {
                    // Unable to copy file.
                    SP.UI.Notify.removeNotification(notifyId);

                    showError(args.get_message());
                });
        },
        function (sender, args) {
            // Unable to locate file.
            SP.UI.Notify.removeNotification(notifyId);

            showError(args.get_message());
        });
}
function showError(msg) {
    var statusId;

    statusId = SP.UI.Status.addStatus('File Copy Error:', msg);
    SP.UI.Status.setStatusPriColor(statusId, 'red');

    // Remove the error message after 5 seconds
    window.setInterval(function(){SP.UI.Status.removeStatus(statusId);}, 5000);
}

 

原文参考:http://www.sharepointdevelopment.me/2011/05/working-with-files-in-sharepoint-from-ecma-script/