Как создать и прочитать файлы во вложенных папках в Sharepoint, используя javascript - PullRequest
0 голосов
/ 29 апреля 2020

Я использую библиотеку https://aymkdn.github.io/SharepointPlus/ для запросов на sharepoint. Я сталкиваюсь с проблемой сохранения и чтения файлов внутри вложенных папок (библиотека / папка / папка). Поскольку в этой библиотеке реализовано сохранение файлов, и это работает, но я не смог сохранить / прочитать файлы во вложенных папках .

 <input type="file" id="file_to_upload"> <button type="button" onclick="_uploadFile()">Upload</button>
 function _uploadFile() {
  var files;
  // retrive file from INPUT
files = document.querySelector('#file_to_upload').files;
if (!files || files.length === 0) {
  alert("ERROR: Select a file");
  return;
}
files = Array.prototype.slice.call(files);
// read the files
Promise.all(files.map(function(file) {
  return new Promise(function(prom_res, prom_rej) {
    // use fileReader
    var fileReader = new FileReader();
    fileReader.onloadend = function(e) {
      file.content = e.target.result;
      prom_res(file);
    }
    fileReader.onerror = function(e) {
      prom_rej(e.target.error);
    }
    fileReader.readAsArrayBuffer(file);
  })
})).then(function(files) {
  // upload files
  return Promise.all(files.map(function(file) {
    return $SP().list("Library/folder/folder").createFile({
      content:file.content,
      filename:file.name,
      progress:function(perc) {
        console.log("Progress => ",perc+"%")
      }
    })
  }))
})
}

1 Ответ

1 голос
/ 30 апреля 2020

Протестированный скрипт:

<input type="file" id="file_to_upload"> <button type="button" onclick="_uploadFile()">Upload</button>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/sharepointplus/browser/sharepointplus.js"></script>
    <script type="text/javascript">
        function _uploadFile() {
            var files;
            // retrive file from INPUT
            files = document.querySelector('#file_to_upload').files;
            if (!files || files.length === 0) {
                alert("ERROR: Select a file");
                return;
            }
            files = Array.prototype.slice.call(files);
            // read the files
            Promise.all(files.map(function (file) {
                return new Promise(function (prom_res, prom_rej) {
                    // use fileReader
                    var fileReader = new FileReader();
                    fileReader.onloadend = function (e) {
                        file.content = e.target.result;
                        prom_res(file);
                    }
                    fileReader.onerror = function (e) {
                        prom_rej(e.target.error);
                    }
                    fileReader.readAsArrayBuffer(file);
                })
            })).then(function (files) {
                // upload files
                return Promise.all(files.map(function (file) {
                    return $SP().list("mydoc2").createFile({
                        content: file.content,
                        filename: "folder/folder/"+file.name,
                        progress: function (perc) {
                            console.log("Progress => ", perc + "%")
                        }
                    })
                }))
            })
        }
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...