javascript: Как получить файл из объекта JSON и сохранить его в библиотеке документов SharePoint - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю над надстройкой SharePoint, которая извлекает файл (и метаданные) из остальных API и сохраняет его в библиотеке документов SharePoint (с именем документа). Требование заключается в том, что надстройка поддерживает Classi c как современные сайты. Поэтому SPFX не подходит.

Я могу получить JSON от REST, но я немного застрял в своих следующих шагах.

Формат JSON просто:

{ 
size: 2399,
ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
Data: "UEsDBBQAAAAIAIBxVFC38a4kqQAAAA4BAAATAAAAY3VzdG9tWG1sL2l0ZW0xLnhtbK2PwQE...............etc",
filename: "Invoice298393.docx"
}

Я могу сохранить файл как Base64. Мое решение похоже на https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/upload-a-file-by-using-the-rest-api-and-jquery. В этом примере извлекаются его данные из входного контроллера и потоковые данные оттуда ....

Я хотел бы узнать, как получить json.Data и загрузить его в библиотеку документов SharePoint.

Заранее спасибо ...

1 Ответ

0 голосов
/ 20 февраля 2020

Nevermind ... Исправлено:

function b64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {
        return String.fromCharCode('0x' + p1);
    }));
}
function b64DecodeUnicode(str) {
    return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
}

    var jsonString = JSON.stringify(json.Data, null, 0);
    var base64EncodedArray = b64EncodeUnicode(jsonString);
    var content = new SP.Base64EncodedByteArray(base64EncodedArray); //base64 encoding
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...