2011-11-21 51 views
2

我在NTFS中保存了Filestream文檔。每次嘗試使用下面的塊訪問它們時,我都會在Image.FromStream行上看到「參數無效」錯誤消息。這與FS文件夾中存儲的文件有什麼關係?或者我的參數缺少什麼? 有沒有辦法查看文件夾中的文件來驗證它們是否格式正確?FILESTREAM - 使用SQLFileStream讀取存儲在文件系統中的文檔

private static Image LoadPhotoImage(string filePath, byte[] txnToken) 
    { 
     Image photo; 
     try 
     { 
      using (SqlFileStream sfs = 
       new SqlFileStream(filePath, txnToken, FileAccess.Read)) 
      { 
       photo = Image.FromStream(sfs,false); 
       sfs.Close(); 
      } 

      return photo; 
     } 
     catch (ArgumentException ae) 
     { 
      System.Diagnostics.Debug.WriteLine(ae.Message); 
      return null; 
     } 
    } 
+0

你是什麼意思「我在NTFS中保存Filestream文檔」?它*幾乎*聽起來像你把你的文件從sql server中取出並存儲在別的地方,現在想用SqlFileStream對象... – NotMe

+0

如果你調試你的代碼,流是空的嗎?這個流真的包含一個可以被GDI讀取的圖像嗎? – Magnus

回答

0

不能使用SqlFileStream爲此,每MSDN Documentation:與存儲在SQL Server 2008數據庫FILESTREAM屬性

「一個SqlFileStream類用於與VARBINARY工作(max)數據「。

只需使用Image.FromFile來加載圖像。

+0

也許我誤解了一些東西。如果SqlFileStream不用於加載存儲在sql server文件流中的文件,那麼它是幹什麼用的? – NotMe

+0

@Chris Lively:OP聲稱他們正在從NTFS(即windows文件系統)讀取文件,而不是SQL Server。 –

+0

@competent_tech我已經使用'SqlFileStream'非常像OP正在做的,它是有效的。此外,filePath來自數據庫透視圖,因此'Image.FromFile'可能不起作用。 – Magnus

相關問題