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);
}
});
}