How to upload a document file in SharePoint list with REST API using jquery?
Upload a document file in SharePoint list with REST API using jquery:
Use the below snippet code
<html>
<head>
<script src="/Site%20Assets/js/jquery-1.11.1.min.js"></script>
<script src="/Site%20Assets/Assets/Jquery/jquery-2.2.4.min.js"></script>
</head>
<body>
<div>
<input id="uploadFile" type="file">
</div>
<button type="button" id="saveDocuments">Save </button>
<script>
$(document).ready(function(){
var listName = 'ERepairShop';
function getFileBuffer(file) {
var deferred = $.Deferred();
var reader = new FileReader();
reader.onload = function (e) {
deferred.resolve(e.target.result);
}
reader.onerror = function (e) {
deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return deferred.promise();
}
function uploadFileSP(listName, id, fileArray, fileCount) {
var FilesCount = 0;
var deferred = $.Deferred();
var uploadStatus = "";
var file = fileArray[0];
var getFile = getFileBuffer(file);
getFile.done(function (buffer, status, xhr) {
var bytes = new Uint8Array(buffer);
var content = new SP.Base64EncodedByteArray();
var queryUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/lists/GetByTitle('" + listName + "')/items(" + id + ")/AttachmentFiles/add(FileName='" + file.name + "')";
var uploadCount = 0;
$.ajax({
url: queryUrl,
type: "POST",
processData: false,
contentType: "application/json;odata=verbose",
data: buffer,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-length": buffer.byteLength
},
success: function (data) {
FilesCount++;
uploadStatus = FilesCount;
fileArray.shift();
if (fileArray.length > 0) {
uploadFileSP("UploadTest", id, fileArray, fileArray.length);
}
else {
alert('Document Upload Successfully.');
}
},
error: function (err) {
alert('Something Went Wrong.');
}
});
deferred.resolve(uploadStatus);
});
getFile.fail(function (err) {
deferred.reject(err);
});
return deferred.promise();
}
function AddAttachments()
{
var fileInput = $('#uploadFile');
var fileCount = fileInput[0].files.length;
if (fileCount === 0 ) {
alert('Please upload file.');
return;
}
var fileArray = [];
for (var i = 0; i < fileCount; i++) {
fileArray.push(fileInput[0].files[i]);
}
console.log(fileArray);
console.log(fileInput);
id=1;
uploadFileSP(listName, id, fileArray, fileCount);
}
$("#saveDocuments").on('click', function(){
AddAttachments();
})
});
</script>
</body>
</html>
Use the below snippet code
<html>
<head>
<script src="/Site%20Assets/js/jquery-1.11.1.min.js"></script>
<script src="/Site%20Assets/Assets/Jquery/jquery-2.2.4.min.js"></script>
</head>
<body>
<div>
<input id="uploadFile" type="file">
</div>
<button type="button" id="saveDocuments">Save </button>
<script>
$(document).ready(function(){
var listName = 'ERepairShop';
function getFileBuffer(file) {
var deferred = $.Deferred();
var reader = new FileReader();
reader.onload = function (e) {
deferred.resolve(e.target.result);
}
reader.onerror = function (e) {
deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return deferred.promise();
}
function uploadFileSP(listName, id, fileArray, fileCount) {
var FilesCount = 0;
var deferred = $.Deferred();
var uploadStatus = "";
var file = fileArray[0];
var getFile = getFileBuffer(file);
getFile.done(function (buffer, status, xhr) {
var bytes = new Uint8Array(buffer);
var content = new SP.Base64EncodedByteArray();
var queryUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/lists/GetByTitle('" + listName + "')/items(" + id + ")/AttachmentFiles/add(FileName='" + file.name + "')";
var uploadCount = 0;
$.ajax({
url: queryUrl,
type: "POST",
processData: false,
contentType: "application/json;odata=verbose",
data: buffer,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-length": buffer.byteLength
},
success: function (data) {
FilesCount++;
uploadStatus = FilesCount;
fileArray.shift();
if (fileArray.length > 0) {
uploadFileSP("UploadTest", id, fileArray, fileArray.length);
}
else {
alert('Document Upload Successfully.');
}
},
error: function (err) {
alert('Something Went Wrong.');
}
});
deferred.resolve(uploadStatus);
});
getFile.fail(function (err) {
deferred.reject(err);
});
return deferred.promise();
}
function AddAttachments()
{
var fileInput = $('#uploadFile');
var fileCount = fileInput[0].files.length;
if (fileCount === 0 ) {
alert('Please upload file.');
return;
}
var fileArray = [];
for (var i = 0; i < fileCount; i++) {
fileArray.push(fileInput[0].files[i]);
}
console.log(fileArray);
console.log(fileInput);
id=1;
uploadFileSP(listName, id, fileArray, fileCount);
}
$("#saveDocuments").on('click', function(){
AddAttachments();
})
});
</script>
</body>
</html>
Comments
Post a Comment