2012-07-16 85 views
0

我有下面的代碼上傳的圖片:FileUpload.FileBytes不存儲所有圖像數據

FileUpload uniformItemImageFileUpload = uniformItemsGrid.FooterRow.FindControl("UniformImageInsert") as FileUpload; 
byte[] itemBytes = uniformItemImageFileUpload.FileBytes; 

而下面綁定到數據庫:

OracleParameter itemImageParameter = new OracleParameter("itemImage", OracleDbType.Blob, 4000); 
itemImageParameter.Value = itemImageBytes; 
oraCommand.Parameters.Add(itemImageParameter); 

我有一個問題,當通過這種機制上傳圖像時,它不會存儲該圖像的所有二進制數據,但如果它是大於4kb的圖像,則只存儲它的一部分。然而,問題不在於存儲,因爲blob的4000大小可以容納更大的文件,事實上,如果我通過SQL Navigator直接上載它,它可以完全存儲它,而不會出現任何問題,但是,當嘗試上載相同圖像通過代碼,它不會存儲所有的圖像。

有沒有人遇到過這個問題?如何解決?

回答

5

你需要指定的Blob到的OracleParameter的大小,即

OracleParameter itemImageParameter = new OracleParameter("itemImage", OracleDbType.Blob, itemBytes.Length); 
itemImageParameter.Value = itemImageBytes; 
oraCommand.Parameters.Add(itemImageParameter); 

希望這將工作:)