максимальный размер загрузки файла в sharepoint - PullRequest
2 голосов
/ 27 июня 2011

Я использую следующий метод для загрузки документа в библиотеку документов sharepoint. Однако при выполнении запроса - получить следующую ошибку: Message = "Удаленный сервер возвратил ошибку: (400) Bad Request."

файлы терпят неудачу более 1 МБ, поэтому я протестировал его через интерфейс sharepoint, и тот же файл был успешно загружен.

есть мысли о том, в чем проблема? Возможно ли передавать файл поверх одного большого файла? размер файла составляет всего 3 МБ.

private ListItem UploadDocumentToSharePoint(RequestedDocumentFileInfo requestedDoc, ClientContext clientContext)
{
    try
    {
        var uploadLocation = string.Format("{0}{1}/{2}", SiteUrl, Helpers.ListNames.RequestedDocuments,
                                           Path.GetFileName(requestedDoc.DocumentWithFilePath));

        //Get Document List
        var documentslist = clientContext.Web.Lists.GetByTitle(Helpers.ListNames.RequestedDocuments);
        var fileCreationInformation = new FileCreationInformation
                                          {
                                              Content = requestedDoc.ByteArray,
                                              Overwrite = true,
                                              Url = uploadLocation //Upload URL,
                                          };

        var uploadFile = documentslist.RootFolder.Files.Add(fileCreationInformation);
        clientContext.Load(uploadFile);
        clientContext.ExecuteQuery();

        var item = uploadFile.ListItemAllFields;
        item["Title"] = requestedDoc.FileNameParts.FileSubject;
        item["FileLeafRef"] = requestedDoc.SharepointFileName;
        item.Update();
    }
    catch (Exception exception)
    {
        throw new ApplicationException(exception.Message);
    }
    return GetDocument(requestedDoc.SharepointFileName + "." + requestedDoc.FileNameParts.Extention, clientContext);
}

РЕДАКТИРОВАТЬ: я нашел следующую страницу ms относительно моей проблемы (которая кажется идентичной проблеме, которую они подняли) http://support.microsoft.com/kb/2529243, но, кажется, не предоставляет решение.

1 Ответ

2 голосов
/ 27 июня 2011

хорошо нашел решение здесь: http://blogs.msdn.com/b/sridhara/archive/2010/03/12/uploading-files-using-client-object-model-in-sharepoint-2010.aspx

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

    private ListItem UploadDocumentToSharePoint(RequestedDocumentFileInfo requestedDoc, ClientContext clientContext)
    {
        try
        {
            using(var fs = new FileStream(string.Format(@"C:\[myfilepath]\{0}", Path.GetFileName(requestedDoc.DocumentWithFilePath)), FileMode.Open))
            {
                File.SaveBinaryDirect(clientContext, string.Format("/{0}/{1}", Helpers.ListNames.RequestedDocuments, requestedDoc.FileName), fs, true);
            }
        }
        catch (Exception exception)
        {
            throw new ApplicationException(exception.Message);
        }
        return GetDocument(requestedDoc.SharepointFileName + "." + requestedDoc.FileNameParts.Extention, clientContext);
    }
...