仅在第二次单击时使用JQuery和SharePointPlus js库将文件上载到SharePoint库
我正在使用SharepointPlus 5.2 js库的仅在第二次单击时使用JQuery和SharePointPlus js库将文件上载到SharePoint库,jquery,rest,web-services,sharepoint,filereader,Jquery,Rest,Web Services,Sharepoint,Filereader,我正在使用SharepointPlus 5.2 js库的createFile()方法将文件上载到SharePoint 2013库。它适用于大多数SP库。但在新创建的SP库上,它会在第一次单击时抛出一个错误(需要文件内容),然后在第二次单击时进行正确的上载。如何解决这个问题 标题部分包括: HTML正文: 标题: 文档选择: JS函数: function _uploadFile() { var Title = $('div[data-field="Title"] input').v
createFile()
方法将文件上载到SharePoint 2013库。它适用于大多数SP库。但在新创建的SP库上,它会在第一次单击时抛出一个错误(需要文件内容),然后在第二次单击时进行正确的上载。如何解决这个问题
标题部分包括:
HTML正文:
标题:
文档选择:
JS函数:
function _uploadFile() {
var Title = $('div[data-field="Title"] input').val();
var files = document.querySelector('#fileUploadInput').files;
files = Array.prototype.slice.call(files);
// read the files
Promise.all(files.map(function(file) {
return new Promise(function(prom_res, prom_rej) {
// use fileReader
var fileReader = new FileReader();
fileReader.onloadend = function(e) {
file.content = e.target.result;
prom_res(file);
}
fileReader.onerror = function(e) {
prom_rej(e.target.error);
}
fileReader.readAsArrayBuffer(file);
});
})).then(function(files) {
// upload files
return Promise.all(files.map(function(file) {
return $SP().list("8D5132D2-A458-4961-BCD6-FFD9CE964C0F").createFile({ //Doc lib UID
content:file.content,
filename:file.name,
fields:{
"Title":Title
}
});
}))
}).then(function(file) {
alert(file[0].Name+" has been uploaded");
console.log("Document " + file[0].Name+" has been uploaded to the Outgoing documents library");
}, function(error) {
console.log("Error: ",error);
});
}
Firefox控制台中的错误是
未捕获异常:[SharepointPlus'createFile']:文件内容
是必需的
调试文件对象内容显示它存在(以字节为单位显示大小)。错误处理程序不返回错误文本消息。在第二次点击相同的表单时(不刷新页面),上传文件并给出成功消息。
如果是SharePoint、JQuery或SharepointPlus问题,或者是一些冲突,我就会陷入困境。通常情况下,由于相同的代码适用于其他现有库,因此需要从第一次单击开始上载文件。问题已得到解决。事实上,问题不在代码中,代码运行良好,而在页面本身。尽管包含了所有SP依赖项,但代码只有在我将其放入SP本机页面时才起作用