Загрузите файл на SharePoint через встроенные веб-сервисы

Изменить: ответ Серый правильный.

Что я хочу добавить: ваш архитектор прав, если с точки зрения Boolean неизменен, зачем его синхронизировать? Но многопоточность сложна и основана на сценарии.

31
задан Andy McCluggage 11 September 2008 в 10:10
поделиться

6 ответов

Пример использования веб-сервиса "Копии" WSS для загрузки документа библиотеке...

public static void UploadFile2007(string destinationUrl, byte[] fileData)
{
    // List of desination Urls, Just one in this example.
    string[] destinationUrls = { Uri.EscapeUriString(destinationUrl) };

    // Empty Field Information. This can be populated but not for this example.
    SharePoint2007CopyService.FieldInformation information = new 
        SharePoint2007CopyService.FieldInformation();
    SharePoint2007CopyService.FieldInformation[] info = { information };

    // To receive the result Xml.
    SharePoint2007CopyService.CopyResult[] result;

    // Create the Copy web service instance configured from the web.config file.
    SharePoint2007CopyService.CopySoapClient
    CopyService2007 = new CopySoapClient("CopySoap");
    CopyService2007.ClientCredentials.Windows.ClientCredential = 
        CredentialCache.DefaultNetworkCredentials;
    CopyService2007.ClientCredentials.Windows.AllowedImpersonationLevel = 
        System.Security.Principal.TokenImpersonationLevel.Delegation;

    CopyService2007.CopyIntoItems(destinationUrl, destinationUrls, info, fileData, out result);

    if (result[0].ErrorCode != SharePoint2007CopyService.CopyErrorCode.Success)
    {
        // ...
    }
}
17
ответ дан 27 November 2019 в 22:28
поделиться

Другая опция состоит в том, чтобы использовать простой ПОМЕЩЕННЫЙ HTTP:

WebClient webclient = new WebClient();
webclient.Credentials = new NetworkCredential(_userName, _password, _domain);
webclient.UploadFile(remoteFileURL, "PUT", FilePath);
webclient.Dispose();

, Где remoteFileURL указывает на Вашу библиотеку документа SharePoint...

9
ответ дан 27 November 2019 в 22:28
поделиться

Существует несколько вещей рассмотреть:

  • Копия. CopyIntoItems <забастовка> нужен документ, чтобы уже присутствовать в некотором сервере . Документ передается как параметр вызова веб-сервиса, который ограничит, насколько большой документ может быть. (См. http://social.msdn.microsoft.com/Forums/en-AU/sharepointdevelopment/thread/e4e00092-b312-4d4c-a0d2-1cfc2beb9a6c )
  • 'http помещенный' метод (т.е. webdav...) только поместит документ в библиотеку, но не устанавливать значения полей
  • для обновления значений полей, которые можно назвать Списками. UpdateListItem после 'http помещенный'
  • библиотеки документа могут иметь каталоги, можно сделать их с 'http mkcol',
  • можно хотеть зарегистрироваться в файлах со Списками. CheckInFile
  • можно также создать пользовательский веб-сервис, который использует.Net API SPxxx, но что новый веб-сервис должен будет быть установлен на сервере. Это могло сохранить прохождения в сервер.
8
ответ дан 27 November 2019 в 22:28
поделиться

Мне везло с помощью класса обертки DocLibHelper, описанного здесь: http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html

4
ответ дан 27 November 2019 в 22:28
поделиться

От colleage на работе:

Ленивый путь: Ваш интерфейс файловой системы Windows WebDAV. Это плохо как программное решение, потому что это полагается на услуги WindowsClient, работающие на Вашей ОС, и также только работает над работой веб-сайтов порта 80. Подключите диск к библиотеке документа и доберитесь с копированием файла.

существует дополнительно веб-сервис для загрузки файлов, болезненных, но работы все время.

я полагаю, что Вы можете загрузить файлы через API FrontPage, но я, которого don’t знают любого, кто на самом деле использует его.

1
ответ дан 27 November 2019 в 22:28
поделиться

Не уверенный в точно, который веб-сервис использовать, но если Вы в состоянии, где можно использовать.NET SharePoint API Dlls, затем с помощью SPList и SPLibrary. Объекты. Добавьте действительно легко.

1
ответ дан 27 November 2019 в 22:28
поделиться