Friday, February 14, 2020

Copy File using copyTo action from one Library to another Library using JSOM

function copyFiles(sourceLib, destLib) {
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var file = web.getFileByServerRelativeUrl("/sites/HRD/Test1/Revised%20PDPA.doc");
ctx.load(file);
ctx.executeQueryAsync(
function () {
console.log("Got the source folder right here!");
var title = file.get_name();
alert(title);
var destLibrary = '/sites/HRD/Test2/Test Folder1';
var destLibUrl = destLibrary + "/" + file.get_name();
file.copyTo(destLibUrl, true);
ctx.executeQueryAsync(function () {
console.log("Files moved successfully!");
getFileWithProperties('/sites/HRD/Test2/Test Folder1/Revised%20PDPA.doc',
function (file) {
var listItem = file.get_listItemAllFields(); //get list item for a file
var itemProperties = { 'Title': 'New Order2' };
//update list item
updateListItem(listItem, itemProperties,
function () {
console.log('File is updated succesfully');
},
function (sender, args) {
console.log(args.get_message());
}
);
},
function (sender, args) {
console.log(args.get_message());
});
}, function (sender, args) { console.log("error: ") + args.get_message() });
},
function (sender, args) { console.log("Sorry, something messed up: " + args.get_message()); }
);
}

function updateListItem(listItem, properties, success, error) {
var ctx = listItem.get_context();
for (var propName in properties) {
listItem.set_item(propName, properties[propName])
}
listItem.update();
ctx.executeQueryAsync(
function () {
success();
},
error
);
}

function getFileWithProperties(url, success, error) {
var ctx = SP.ClientContext.get_current();
var file = ctx.get_web().getFileByServerRelativeUrl(url); //get file
ctx.load(file, 'ListItemAllFields');
ctx.executeQueryAsync(
function () {
success(file);
},
error
);
}

No comments:

Post a Comment