1
Answer

JavaScript SharePoint doc Library upload with extra column

I am using this code but need to add an extra column.  I tried using fileID and my column name of AssociateID but can't gwet it to work. I know it's a simeple thing that I am doing wrong.  Here's my code:

function uploadDocument(loc) {

    var context = new SP.ClientContext.get_current();

    var web = context.get_web();

    var list = web.get_lists().getByTitle('MTP');

    var view = list.get_views().getByTitle('testAdminView');

    var viewFields = view.get_viewFields();

    context.load(viewFields);

    context.executeQueryAsync(printFieldNames, onError);

    function printFieldNames() {

        var e = viewFields.getEnumerator();

        while (e.moveNext()) {

            var fieldName = e.get_current();

            console.log(fieldName);

        }

    }

    function onError(sender, args) {

        console.log(args.get_message());

    }

  var files = $("#getFile")[0].files;  

  if (files.length > 0) {  

      fileName = files[0].name;  

      var webUrl = _spPageContextInfo.webAbsoluteUrl;  

      var documentLibrary = "MTP";

      var fileID = loc;

      var targetUrl = _spPageContextInfo.webServerRelativeUrl + "/" + documentLibrary;  

      // Construct the Endpoint  

      var url = webUrl + "/_api/Web/GetFolderByServerRelativeUrl(@target)/Files/add(overwrite=true, url='" + fileName + "')?@target='" + targetUrl + "'&$expand=ListItemAllFields";  

      uploadFileToFolder(files[0], url, function(data) {  

          var file = data.d;

          fileID = file.AssociateID;  

          DocFileName = file.Name;  

          var updateObject = {  

              __metadata: {  

                  type: file.ListItemAllFields.__metadata.type  

              },  

              FileLeafRef: DocFileName, //FileLeafRef --> Internal Name for Name Column

              AssociateID: fileID

          };

          alert("File uploaded successfully!");  

      }, function(data) {  

          alert("File uploading failed");  

      });  

  } else {  

      alert("Kindly select a file to upload.!");

  }  

}  

// Get the local file as an array 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();  

}

function uploadFileToFolder(fileObj, url, success, failure) {  

  var apiUrl = url;  

  console.log('url = ' +apiUrl)

  // Initiate method calls using jQuery promises.  

  // Get the local file as an array buffer.  

  var getFile = getFileBuffer(fileObj);  

  // Add the file to the SharePoint folder.  

  getFile.done(function(arrayBuffer) {  

      $.ajax({  

          url: apiUrl,//File Collection Endpoint  

          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) {  

              success(data);  

          }  

      });  

  });  

}

Answers (1)