Sharepoint REST - Можем ли мы обновить метаданные файла при загрузке самого файла?

  1. Используя указанную ниже конечную точку, мы можем загрузить файл в sharepoint: https://domain.example.com/_api/web/GetFolderByServerRelativeUrl("FolderRelativeUrl") / Files / add (url = "File", overwrite = true)
  2. Используя указанную ниже конечную точку, мы можем обновить метаданные для определенного файла: https://domain.example.com/_api/web/GetFileByServerRelativeUrl(URL)/ListItemAllFields

Можно ли обновить метаданные при загрузке самого файла? И в то же время при получении нам нужно получить метаданные вместе с файлом.

В основном я пытаюсь избежать 2 отдельных звонков? Поддерживает ли SharePoint API эту функцию?

1 ответ

SharePoint не может предоставить API REST для его достижения.

В качестве обходного пути мы можем использовать CSOM(C#) для достижения этой цели.

public Boolean UploadDocument(String fileName, String filePath, List metaDataList)   
{  
    SP.ClientContext ctx = new SP.ClientContext("http://yoursharepointURL");  
    Web web = ctx.Web;  
    FileCreationInformation newFile = new FileCreationInformation();  
    newFile.Content = System.IO.File.ReadAllBytes(@"C: \TestFile.doc");  
    newFile.Url = "/" + fileName;  
    List docs = web.Lists.GetByTitle(“Shared Documents”);  
    Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(newFile);  
    context.Load(uploadFile);
    context.ExecuteQuery();
    SPClient.ListItem item = uploadFile.ListItemAllFields;  
    //Set the metadata  
    string docTitle = string.Empty;  
    item["Title"] = docTitle;
    item.Update();  
    context.ExecuteQuery();  
}

Если вы хотите вызывать веб-сервис с помощью Ajax из пользовательского интерфейса, мы можем создать пользовательский веб-сервис с CSOM(C#), а затем использовать веб-сервис с помощью Ajax.

Это неприятно, но вы можете загрузить исходную версию и установить метаданные за один вызов. Но не загружать новую версию и устанавливать метаданные, только как отдельные вызовы. Я передаю файлы из DMS, у которого может быть несколько версий, и история версий в Sharepoint не будет совпадать. Чтобы сделать его согласованным, я также передаю исходную версию и метаданные как два вызова. Клиент проинформирован, и история версий в порядке. Импорт файла отображается как пустая версия.

Другие вопросы по тегам