2012-07-16 3 views
0

je le code ci-dessous pour télécharger l'image:FileUpload.FileBytes ne pas stocker toutes les données d'image

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

Et ce qui suit pour se lier à la base de données:

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

J'ai un problème, que lorsque l'image est téléchargée via ce mécanisme, elle ne stocke pas toutes les données binaires de cette image, mais n'en stocke qu'une partie si c'est une image supérieure à 4kb. Cependant, le problème n'est pas le stockage, car la taille 4000 du blob peut contenir des fichiers plus grands, en fait, si je le télécharge directement via le navigateur SQL, il peut le stocker complètement, sans problème, cependant, en essayant de télécharger le même image à travers le code, il ne stocke pas tout.

Est-ce que quelqu'un a rencontré ce problème? comment peut-il être réparé?

Répondre

5

Vous devez spécifier la taille du Blob à l'OracleParameter, à savoir

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

Espérons que cela fonctionne :)

Questions connexes