Я работаю над пользовательским набором команд SPFX. Он открывает диалог с iframe для сторонней платформы. Я могу получить json через почтовое сообщение. Из этого json я конвертирую его данные в файл с соответствующими метаданными. Все это работает как шарм ... Кроме ...
Теперь я хочу загрузить этот файл в библиотеку документов, и это сводит меня с ума.
Я ссылаюсь:
import "@pnp/polyfill-ie11";
import { ConsoleListener, Logger, LogLevel } from "@pnp/logging";
import { sp } from "@pnp/sp";
import { Web } from "@pnp/sp/webs";
import "@pnp/sp/webs";
import "@pnp/sp/files";
import "@pnp/sp/folders";
import { Base64 } from 'js-base64';
В моем диалоговом компоненте я пытаюсь загрузить файл с помощью web.getFolderByServerRelativeUrl. Но этот метод не работает, и я действительно не понимаю, почему .... Глядя на ссылку pnp (https://pnp.github.io/pnpjs/sp/files/), кажется, что это правильный путь.
var file = Base64.atob(response.Data);
console.log("File length : " + file.length);
let web = Web("https://MyTenant.sharepoint.com/sites/Customer"); // this is successful
await web.getFolderByServerRelativeUrl("/sites/Customer/Shared%20Documents/")
.files.add(response.fileName, file, true); // this fails
Контекст устанавливается в CommandSet onInit ()
@override
public onInit(): Promise<void> {
Log.info(LOG_SOURCE, 'Initialized myCommandSet');
pnpSetup({
spfxContext: this.context
});
return Promise.resolve();
}
Надеюсь, вы, ребята, можете указать мне правильное направление ...
РЕДАКТИРОВАТЬ:
Ошибка :
HTTP400: INVALID REQUEST - The request could not be processed by the server
due to an invalid syntax
POST - https://MyDevTenant.sharepoint.com/sites/customer/
_api/web/getFolderByServerRelativeUrl
('%2Fsites%2Customer%2FShared%2520Documents%2F')
/files/add(overwrite=true,url='')
Является ли URL из библиотеки документов, что все портит?