0

画像をアップロードするための次のコードがあります。

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 を超える画像の場合はその一部のみが保存されるという問題があります。ただし、問題はストレージではありません.4000サイズのブロブはより大きなファイルに適合できるため、実際にSQLナビゲーターから直接アップロードすると、問題なく完全に保存できますが、同じものをアップロードしようとすると、コードを介して画像を表示すると、そのすべてが保存されるわけではありません。

この問題に遭遇した人はいますか?どうすれば修正できますか?

4

1 に答える 1

5

Blob のサイズを OracleParameter に指定する必要があります。

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

うまくいけばうまくいくでしょう:)

于 2012-07-16T14:41:44.537 に答える