Friday, 20 August 2021

Using REST API to upload Multiple Files to Sharepoint Document library

 


Using REST API to upload Multiple  Files to Sharepoint  Document library

 I’m going to show you how you can upload multiple  files to  document library using REST

Youtube Link




Html
............................................................................................................................................

<div class="div">
<input id="getFile" multiple="multiple" type="file"/>
<input id="addFileButton" type="button" value="Upload" onclick="uploadnewfile()"/> 
</div>

..............................................................................................................................................

JS

function uploadnewfile() {

// Define the folder path for this example.

var serverRelativeUrlToFolder = 'Resume';

// Get test values from the file input and text input page controls.

 
var fileInput = $('#getFile');


var fileName = fileInput[0].files[0].name;

var fileCount = fileInput[0].files.length;


// Get the server URL.


var serverUrl = _spPageContextInfo.webAbsoluteUrl;

var filesUploaded = 0;

for (var i = 0; i < fileCount; i++) {



// Get the local file as an array buffer.

var getFile = getFileBuffer(i);

getFile.done(function (arrayBuffer, i) {

// Add the file to the SharePoint folder.

var addFile = addFileToFolder(arrayBuffer, i);

addFile.done(function (file, status, xhr) {


filesUploaded++;
if (fileCount == filesUploaded) {


alert("All files uploaded successfully");

                   

$("#getFile").value = null;

filesUploaded = 0;
}
});
addFile.fail(onError);
});
getFile.fail(onError);
}
// Get the local file as an array buffer.


function getFileBuffer(i) {

var deferred = jQuery.Deferred();

var reader = new FileReader();

reader.onloadend = function (e) {

deferred.resolve(e.target.result, i);
}
reader.onerror = function (e) {


deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(fileInput[0].files[i]);
return deferred.promise();


}
// Add the file to the file collection in the Shared Documents folder.


function addFileToFolder(arrayBuffer, i) {

var index = i;

// Get the file name from the file input control on the page.

var fileName = fileInput[0].files[index].name;

// Construct the endpoint.

var fileCollectionEndpoint = String.format(

"{0}/_api/web/getfolderbyserverrelativeurl('{1}')/files" +

"/add(overwrite=true, url='{2}')",

serverUrl, serverRelativeUrlToFolder, fileName);
// Send the request and return the response.


// This call returns the SharePoint file.

return jQuery.ajax({

url: fileCollectionEndpoint,
type: "POST",


data: arrayBuffer,
processData: false,


headers: {
"accept""application/json;odata=verbose",


"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),

"content-length": arrayBuffer.byteLength

}
});
}
}
// Display error messages.
function onError(error) {


alert(error.responseText);
}


 


Wednesday, 3 June 2020

Content Editor Webpart is missing in SharePoint online

Fix using powershell


Connect-SPOService -Url https://abc-admin.sharepoint.com 

set-SPOsite https://abc.sharepoint.com -DenyAddAndCustomizePages 0 

How to Connect to SharePoint Online from PowerShell




 Connect-SPOService -Url https://YourTenant-admin.sharepoint.com


Download all wsp files from Central Admin using Powershell



$pathName = "c:\WSPFiles\"

foreach ($solution in Get-SPSolution)
   {
 
  
    $title = $Solution.Name

    $filename = $Solution.SolutionFile.Name

    $solution.SolutionFile.SaveAs("$pathName\$filename")
}

Customize the Quick Launch as Expand/Collapse in SharePoint 2013/2016 Using Code




var quickLaunchLinks = $("div[id$='QuickLaunchMenu'] > ul > li:has('ul') > a");


quickLaunchLinks.prepend("<span class='ms-commentexpand-iconouter ql-icon'>
<img alt='expand' src='/Comm/Comms2/_themes/1/spcommon-B35BB0A9.themedpng?ctag=2' class='ms-commentexpand-icon'></span>");



quickLaunchLinks.closest("li").find("> ul").hide();




quickLaunchLinks.click(function(e) {



    e.preventDefault();



    var childUl = $(this).closest("li").find("> ul");

    var visibleChildUL = childUl.is(":visible")



    if (visibleChildUL) {

        $(this).find(".ql-icon").replaceWith("<span class='ms-commentexpand-iconouter ql-icon'>
<img alt='Expand' src='/Comm/Comms2/_themes/1/spcommon-B35BB0A9.themedpng?ctag=2' class='ms-commentexpand-icon'></span>");


        childUl.slideUp();



    } else {



        $(this).find(".ql-icon").replaceWith("<span class='ms-commentcollapse-iconouter ql-icon'>
<img alt='Collapse' src='/Comm/Comms2/_themes/1/spcommon-B35BB0A9.themedpng?ctag=2' class='ms-commentcollapse-icon'></span>");


        childUl.slideDown();



    }



});

Monday, 22 October 2018

Upload files into a folder of SharePoint Document Library - REST API

Upload files into a folder of SharePoint Document Library - REST API 

var arrayBuffer;  

 <input type="file" name="attachment" id="inputFileUpload" class="input-file-control"/>

function uploadFiles(fileInputControlId, webUrl, documentLibraryName, folderName) {
         for (var i = 0; i < $(fileInputControlId)[0].files.length; i++) {
             var uploadFile = $(fileInputControlId)[0].files[i];
             var getFile = getFileBuffer(uploadFile);
             getFile.done(function (arrayBuffer) {
                 uploadFileToFolder(webUrl, documentLibraryName, folderName, uploadFile.name, arrayBuffer, function (data) {
                   alert("File upload done successfully");
                 }, function (data) {
                   alert("File uploading fail");
                 });
             });
         }
     }


 //Get the uploaded file buffer.
 function getFileBuffer(uploadFile) {
         var deferred = jQuery.Deferred();
         var reader = new FileReader();
         reader.onloadend = function (e) {
             deferred.resolve(e.target.result);
         }
         reader.onerror = function (e) {
             deferred.reject(e.target.error);
         }
         reader.readAsArrayBuffer(uploadFile);
         return deferred.promise();
     }



//Upload files into SharePoint library with REST API
 function uploadFileToFolder(webUrl, documentLibraryName, folderName, fileName, arrayBuffer, success, failure) {
         //file added to the subfolder of Rootfolder.
         var apiUrl = webUrl + "/_api/web/lists/getByTitle('" + documentLibraryName + "')/RootFolder/folders('" + folderName + "')/files/add(url='" + fileName + "', overwrite=true)";

         $.ajax({
             url: apiUrl,
             type: "POST",
             data: arrayBuffer,
             processData: false,
             async:false,
             headers: {
                 "accept": "application/json;odata=verbose",
                 "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
             },
             success: function (data) {
                 success(data);
             },
             error: function (data) {
                 failure(data);
             }
         });
     }

Create file in SharePoint document library using REST API

Create file in SharePoint document library using REST API

$( document ).ready(function() {

    createlist();

});




function createlist()
{


var content = "Hello, this text is inside the file created with REST API";
var digest = $("#__REQUESTDIGEST").val();
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('/PerformanceDocuments/')/Files/add(overwrite=true, url='test.txt')";
jQuery.ajax({
    url: url,
    type: "POST",
    data: content,
    headers: {        
        "accept": "application/json;odata=verbose", 
        "X-RequestDigest": digest       
    },
    success: function(data){
        console.log(data);
    },
    error: function(data){
        console.log(data);
    }
});
}

Create List Item Using Rest API

Create List Item Using Rest API

function UploadItemToList()
{
 
 var Emp = $("#txtname").val();  
    
    $.ajax  
        ({  
        url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('Employee')/items",  
        type: "POST",  
        data: JSON.stringify  
        ({  
            __metadata:  
            {  
                type: "SP.Data.EmployeeListItem"  
            },  
            Title: Emp
        }),  
        headers:  
        {  
            "Accept": "application/json;odata=verbose",  
            "Content-Type": "application/json;odata=verbose",  
            "X-RequestDigest": $("#__REQUESTDIGEST").val(),  
            "X-HTTP-Method": "POST"  
        },  
        success: function(data, status, xhr)  
        {  
              
        },  
        error: function(xhr, status, error)  
        {  
             
        }  
    });  

}

Get the list item using Rest API

Get the list item using Rest API


function GetListItem() {
    var siteUrl = window.location.protocol + '//' + window.location.host + _spPageContextInfo.siteServerRelativeUrl;

    $.ajax({

        url: siteUrl + "/_api/lists/getbytitle('Your List Name')/Items",
        type: "GET",
        headers: {
            "accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: function(data) {

            var results = data.d.results;

            for (var i = 0; i < results.length; i++) {

                alert(results[i]["Field name"]);


            }

        },
        error: function() {
            console.log('Failed.');
        }
    });
}

Tuesday, 27 December 2016


Clear SharePoint Designer 2013 Cache



"Cannot perform this operation. The file is no longer checked out or has been deleted."

1.     Close sharepoint designer

2.     Delete everything at %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache

3.     Delete everything at %APPDATA%\Microsoft\Web Server Extensions\Cache

4.     Go to sharepoint designer  options –> General –> Application Options –> Uncheck the “Cache site data across SharePoint Designer sessions”

Tuesday, 1 November 2016


Remove users from site group using client side coding


function RemoveUsers(grpSystmName) {

var Removeuserpromise = $.Deferred();

var AccountNm = AccountdomainName;

var UserKey = GroupName.split(";").filter(function (x) {

return !!x

});

var user;

var visitorsGroup;

//Load Current Site

var clientContext = new SP.ClientContext();

var groupCollection = clientContext.get_web().get_siteGroups();

visitorsGroup = groupCollection.getByName(grpSystmName);


for (var i = 0; i < UserKey.length; i++) {

var usr2 = clientContext.get_web().ensureUser(AccountNm + '\\' + UserKey[i]);

//Get all SP Users in SP Group

var userCollection = visitorsGroup.get_users();

//Remove User to Group

var oUSR2 = userCollection.remove(usr2);

//Load data

// clientContext.load(oUSR2);

clientContext.load(userCollection);

}



//Execute Query

clientContext.executeQueryAsync(Function.createDelegate(this, function () { onQueryRemoveUsersSucceeded(Removeuserpromise); }), Function.createDelegate(this, this.onQueryRemoveUsersFailed));

return Removeuserpromise.promise();

}

 function onQueryRemoveUsersSucceeded(Removeuserpromise) {


Removeuserpromise.resolve();



console.log("user removed");

 
}

function onQueryRemoveUsersFailed(sender, args) {

console.log('User removed. ' + args.get_message() + '\n' + args.get_stackTrace());

}

 

 

 

Remove users from site group using client side coding


function RemoveUsers(grpSystmName) {

var Removeuserpromise = $.Deferred();

var AccountNm = AccountdomainName;

var UserKey = GroupName.split(";").filter(function (x) {

return !!x

});

var user;

var visitorsGroup;

//Load Current Site

var clientContext = new SP.ClientContext();

var groupCollection = clientContext.get_web().get_siteGroups();

visitorsGroup = groupCollection.getByName(grpSystmName);


for (var i = 0; i < UserKey.length; i++) {

var usr2 = clientContext.get_web().ensureUser(AccountNm + '\\' + UserKey[i]);

//Get all SP Users in SP Group

var userCollection = visitorsGroup.get_users();

//Remove User to Group

var oUSR2 = userCollection.remove(usr2);

//Load data

// clientContext.load(oUSR2);

clientContext.load(userCollection);

}



//Execute Query

clientContext.executeQueryAsync(Function.createDelegate(this, function () { onQueryRemoveUsersSucceeded(Removeuserpromise); }), Function.createDelegate(this, this.onQueryRemoveUsersFailed));

return Removeuserpromise.promise();

}

 function onQueryRemoveUsersSucceeded(Removeuserpromise) {


Removeuserpromise.resolve();



console.log("user removed");

 
}

function onQueryRemoveUsersFailed(sender, args) {

console.log('User removed. ' + args.get_message() + '\n' + args.get_stackTrace());

}

 

 

 

Friday, 29 April 2016

Retrieve all document libraries in a SharePoint site programmatically

 
<script type="text/javascript">
$(document).ready(function () {
if (SP.ClientContext != null) {
SP.SOD.executeOrDelayUntilScriptLoaded(GetLibrariesOnly, 'SP.js');


}

else {
SP.SOD.executeFunc('SP.js', null, GetLibrariesOnly);


}
});

var currentcontext = null;
var currentweb = null;
function GetLibrariesOnly()


{

currentcontext = new SP.ClientContext.get_current();


currentweb = currentcontext.get_web();

this.listCollection = currentweb.get_lists();


currentcontext.load(listCollection);

currentcontext.executeQueryAsync(Function.createDelegate(this, this.ExecuteOnSuccess),
Function.createDelegate(this, this.ExecuteOnFailure));


}

function ExecuteOnSuccess(sender, args) {
var listEnumerator = this.listCollection.getEnumerator();
var allLibs ="";
while (listEnumerator.moveNext())


{

var list = listEnumerator.get_current();
if(list.get_baseTemplate() == '101')


{

allLibs+= list.get_title() + list.get_baseTemplate(); + '\n';


}
}

alert("All Libraries" + '\n' + allLibs);

 
 
 
}

function ExecuteOnFailure(sender, args) {
alert("Error in Getting Lists");


}

</script>
 

Wednesday, 27 April 2016


Using REST API to upload Multiple  Files to Sharepoint  Document library

 The code I’m going to show you how you can upload multiple  files to  document library using REST

............................................................................................................................................

<div class="div">
<input id="getFile" multiple="multiple" type="file"/>
<input id="addFileButton" type="button" value="Upload" onclick="uploadnewfile()"/> 
</div>

..............................................................................................................................................

function uploadnewfile() {

// Define the folder path for this example.

var serverRelativeUrlToFolder = 'Resume';

// Get test values from the file input and text input page controls.

 
var fileInput = $('#getFile');


var fileName = fileInput[0].files[0].name;

var fileCount = fileInput[0].files.length;


// Get the server URL.


var serverUrl = _spPageContextInfo.webAbsoluteUrl;

var filesUploaded = 0;

for (var i = 0; i < fileCount; i++) {



// Get the local file as an array buffer.

var getFile = getFileBuffer(i);

getFile.done(function (arrayBuffer, i) {

// Add the file to the SharePoint folder.

var addFile = addFileToFolder(arrayBuffer, i);

addFile.done(function (file, status, xhr) {


filesUploaded++;
if (fileCount == filesUploaded) {


alert("All files uploaded successfully");

                   

$("#getFile").value = null;

filesUploaded = 0;
}
});
addFile.fail(onError);
});
getFile.fail(onError);
}
// Get the local file as an array buffer.


function getFileBuffer(i) {

var deferred = jQuery.Deferred();

var reader = new FileReader();

reader.onloadend = function (e) {

deferred.resolve(e.target.result, i);
}
reader.onerror = function (e) {


deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(fileInput[0].files[i]);
return deferred.promise();


}
// Add the file to the file collection in the Shared Documents folder.


function addFileToFolder(arrayBuffer, i) {

var index = i;

// Get the file name from the file input control on the page.

var fileName = fileInput[0].files[index].name;

// Construct the endpoint.

var fileCollectionEndpoint = String.format(

"{0}/_api/web/getfolderbyserverrelativeurl('{1}')/files" +

"/add(overwrite=true, url='{2}')",

serverUrl, serverRelativeUrlToFolder, fileName);
// Send the request and return the response.


// This call returns the SharePoint file.

return jQuery.ajax({

url: fileCollectionEndpoint,
type: "POST",


data: arrayBuffer,
processData: false,


headers: {
"accept": "application/json;odata=verbose",


"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),

"content-length": arrayBuffer.byteLength

}
});
}
}
// Display error messages.
function onError(error) {


alert(error.responseText);
}