2011-06-27 38 views
2

我使用以下方法將文檔上傳到共享點文檔庫。 但是,在執行查詢時 - 獲取以下錯誤: Message =「遠程服務器返回錯誤:(400)錯誤的請求。」共享點最大文件上傳大小

文件失敗超過1MB,所以我通過sharepoint UI測試了它,並且成功上傳了相同的文件。

有什麼問題的想法是?是否有可能通過流式傳輸文件而不是1個大文件塊?有問題的文件大小隻有3MB ..

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); 
} 

編輯:我發現關於我的問題(這似乎等同於他們所提出的問題)以下毫秒頁面http://support.microsoft.com/kb/2529243,但似乎沒有提供解決方案。

回答

2

確定發現這裏的解決方案: http://blogs.msdn.com/b/sridhara/archive/2010/03/12/uploading-files-using-client-object-model-in-sharepoint-2010.aspx

我需要的文件存儲託管文件,然後使用FILESTREAM上傳過程中我在我下面的代碼完成的服務器上:

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); 
    }