У меня есть список, в котором каждая строка имеет не более 1 вложения, и я пытаюсь скопировать каждое вложение из этого списка в недавно созданную библиотеку изображений.Скопируйте несколько вложений из списка в библиотеку документов по javascript
Я могу скопировать вложение 1 следующим кодом,
var Files;
var myContext;
function CopyAtt(ItemID) {
try {
myContext = new SP.ClientContext.get_current();
var myWeb = myContext.get_site().get_rootWeb();
var folderPath = 'Lists/test/Attachments/' + ItemID;
var Folder = myWeb.getFolderByServerRelativeUrl(folderPath);
Files = Folder.get_files();
myContext.load(Files);
myContext.executeQueryAsync(Function.createDelegate(
this, ExecuteCopyOnSuccess),
Function.createDelegate(
this, GetLeadsFail));
}
catch (err) {
alert(err.Line);
}
}
function GetLeadsFail(sender, args) {
// Show error message
alert('GetLeadsFail() failed:' + args.get_message());
}
function ExecuteCopyOnSuccess(sender, args) {
for (var p = 0; p < this.Files.get_count(); p++) {
var file = Files.itemAt(p);
var filename = file.get_name();
}
if (filename != null) {
var newUrl = 'PictureLibrary/' + filename;
file.copyTo(newUrl, true);
myContext.executeQueryAsync(null, null);
}
}
$(document).ready(function() {
CopyAtt(3);
}
Когда я пытаюсь вызвать CopyAtt(ItemID)
кратные раз от $(document).ready
, код показывает ошибки в консоли.
Uncaught TypeError: Cannot read property 'collectionHasNotBeenInitialized' of undefined
Uncaught RangeError: Maximum call stack size exceeded
Я подозреваю, что это связано с файлами, но я не могу найти какие-либо улики, может кто-нибудь дать мне несколько советов?
На какие-либо из вложений есть апострофы в их именах? – Thriggle
Нет, большинство из них - файлы jpg с буквами только имя. –