2012-02-20 47 views
0

知道我可以將附件加載到內存中,並且我知道它正確的原因是我可以打印文件的名稱。我需要的是將此附件轉換爲圖像對象,我將在稍後添加到Sharepoint圖片庫。但忘記了我知道如何做到這一點的分享點,我被困在加載附件之後的部分,我如何將它轉化爲圖像。我不想保存在磁盤中的圖像,因爲這不是我已經加載到內存中的點。將附件轉換爲圖像

  foreach (Item item in findResults.Items) 
      { 
       if (item is EmailMessage && item.HasAttachments) 
       { 
        EmailMessage message = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments)); 
        foreach (Attachment attachment in message.Attachments) 
        { 
         if (attachment is FileAttachment) 
         { 
          FileAttachment fileAttachment = attachment as FileAttachment; 

          // Load the file attachment into memory and print out its file name. 
          fileAttachment.Load(); 
          Console.WriteLine("Attachment name: " + fileAttachment.Name); 
          //this is where i would create the image of object but dont know how 
         } 
        } 
       } 

      } 

回答

0

您已擁有FileAttachment對象,您甚至可以訪問其某個屬性。您只需要進行下一步操作,不僅可以訪問Name,還可以訪問Content

if (attachment is FileAttachment) 
{ 
    FileAttachment fileAttachment = attachment as FileAttachment; 
    fileAttachment.Load(); 
    byte[] fileContent = fileAttachment.Content; 
} 

這將爲您提供有關附件的內容,如字節數組。我不記得Sharepoint API想要接收什麼,但是它可以是這個字節數組或者可以輕鬆構建的字節數組。

+0

感謝我所需要的,是的sharepoint圖片庫接收一個字節數組。感謝您的答覆! – rdk1992 2012-02-20 14:11:12

+0

不客氣。不要忘記將答案標記爲已接受。 :) 謝謝。 – 2012-02-20 14:12:14

+0

我已經使用htmlagilitypack API解析了電子郵件中的html。它工作的很好,因爲它從電子郵件中的所有內容中提取src值。問題在於附件中顯示的電子郵件中的圖像和其src文件中的圖像被解析爲:cid:companylogo,cid:forumlogo。我的想法是,我將附件圖像上傳到sharepoint庫後,我採取了該網址,並用html中的替換。問題是我不知道要替換哪個src。不知道爲什麼src = cid:forumlogo,而不是附件中文件的名稱。有任何想法嗎? – rdk1992 2012-02-20 16:28:29