var clientContext = new SP.ClientContext("http://xxxx/subsite/"); // to bechanged var dokumentname = "";// name of the folder var oList = clientContext.get_web().get_lists().getByTitle("library name");// to be changed var itemCreateInfo = new SP.ListItemCreationInformation(); itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder); itemCreateInfo.set_leafName(dokumentname); this.oListItem = oList.addItem(itemCreateInfo); this.oListItem.set_item("Title", dokumentname); this.oListItem.EnableFolderCreation = true; this.oListItem.update(); clientContext.load(this.oListItem); clientContext.executeQueryAsync( Function.createDelegate(this, onFolderCreationSuccess), Function.createDelegate(this, onFolderCreationFail) ); function onFolderCreationSuccess(){ alert("folder created sucessfully"); uploadfiletrial(); } function onFolderCreationFail(){ alert("folder not created"); } var element = document.getElementById("abcd");// id of the data fetcher in html function uploadfiletrial(){ var uploadcount = 0; var objektcount = element.files.length-1; uploadabc(uploadcount); function uploadabc(uploadcount){ if(uploadcount<= objektcount) { var element = document.getElementById("abcd"); var filename = element.files.item(uploadcount).name; var file = document.getElementById("abcd").files[uploadcount]; console.log(filename+"|"+file); uploadFileSync("xxx"+dokumentname, filename, file);// replace xx with location to library uploadcount++; alert(uploadcount); uploadabc(uploadcount); } } } //Upload file synchronously function uploadFileSync(folderUrl, filename, file) { var reader = new FileReader(); reader.onloadend = function(evt) { if (evt.target.readyState == FileReader.DONE) { var buffer = evt.target.result; var completeUrl = "http://xxx/xxx/xxx/_api/web/GetFolderByServerRelativeUrl('"+folderUrl+"')/Files/add(url='" + filename + "',overwrite=true)"; // replace xxx with the lcoation of the library $.ajax({ url: completeUrl, type: "POST", data: buffer, processData: false, headers: { "accept": "application/json;odata=verbose", "X-RequestDigest": $("#__REQUESTDIGEST").val(), "content-length": buffer.byteLength }, complete: function (data) { console.log(data.responseJSON.d.ServerRelativeUrl); }, error: function (err) { console.log(err); } }); } }; reader.readAsArrayBuffer(file); }