我有以下代码上传图片:
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上传它可以完全存储它,没有问题,但是,当试图上传它时通过代码形象,它不会存储所有内容。
有没有人遇到过这个问题?怎么修好?
答案 0 :(得分:5)
您需要为OracleParameter指定Blob的大小,即
OracleParameter itemImageParameter = new OracleParameter("itemImage", OracleDbType.Blob, itemBytes.Length);
itemImageParameter.Value = itemImageBytes;
oraCommand.Parameters.Add(itemImageParameter);
希望这会奏效:)