Как удалить вложение элементов из списка sharepoint с помощью pnpjs? - PullRequest
0 голосов
/ 29 августа 2018

Привет, я пытаюсь сначала удалить вложенный элемент из элементов списка, а затем загрузить новый файл вложения в sharepoint, используя pnp js (в vuejs)! Я прослеживаю код и удаляемая часть работает, но я не знаю, почему вложенный файл не удаляет !!!

это мой код для удаления вложенного элемента

      public async DeleteItemsAttachment(itemId: number): Promise<any> {
        let item = pnp.sp.web.lists.getById('{128EF67A-FDSF-4F42-8E8F-D3FC9523273E}').items.getById(itemId)
        return await item.attachmentFiles.deleteMultiple()
      }

  public async AddanAttachment(itemId: number, fileName: string, arrayBuffer: File): Promise<any> {
    let item = pnp.sp.web.lists.getById('{128EF6AA-FD8F-4F42-8E8F-D3FC9523273E}').items.getById(itemId)
    return await item.attachmentFiles.add(fileName, arrayBuffer)
  }

uploadFile(){
  if (this.itemId != null && this.myfiles) {
        if (this.HasUploadFile) {
          this.spService.DeleteItemsAttachment(this.itemId).then(response => {
            this.AddAnAttachmentToRecord()
          }).catch(e => {
            this.message = ` exception : ${e}`
          })
        }
        else {
          this.AddAnAttachmentToRecord()
        }
}

Как я могу решить мою проблему? где неправильная область моего кода?

1 Ответ

0 голосов
/ 29 августа 2018

В соответствии с attachmentfiles.ts deleteMultiple функция ожидает массив имен файлов вложений , поэтому вложения могут быть удалены путем явного указания имен файлов:

item.attachmentFiles.deleteMultiple("{attachment-file-name-1}","{attachment-file-name-2}")

или (более динамично), прочитав имена вложений и указав их в deleteMultiple function:

let item = sp.web.lists.getByTitle(listTitle).items.getById(itemId);
//1. get all attachments
let attachments = await item.attachmentFiles.get(); 
let attachmentNames = attachments.map(a => a.FileName);
//2. delete all attachmanents
await item.attachmentFiles.deleteMultiple(...attachmentNames);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...