2014-10-17 3 views
1

blob을 읽으려고 시도하고 byte []처럼 보냈습니다. 이것은 제가 사용하는 방법입니다.Blob을 oracle에서 byte []로 변환

public byte[] getBlob(long blobId) 
    { 
     OracleCommand cmd = new OracleCommand(); 
     cmd.Connection = _connection; 
     cmd.CommandText = "select TBlob_file FROM Tblob where blobId= " + blobId; 
     object obj = cmd.ExecuteScalar(); 
     if (obj == null) 
      return null; 
     BinaryFormatter bf = new BinaryFormatter(); 
     MemoryStream ms = new MemoryStream(); 
     bf.Serialize(ms, obj); 

     return ms.ToArray(); 
    } 

나는 형식이 좋지 않습니다.

<base64Binary>AAEAAAD/////AQAAAAAAAAAPAQAAAIFqBgAC/9j/4AAQSkZJRgABAQEASABIAAD/ ....... 

항상 내가 그 문제를 생각 AAEAAAD/////AQAAAAAAAAAPAQ 시작 : 내 대답은 같을 것입니다. 어쩌면 바이트 [] 올바른 방법으로 blob 변환하지?

고맙습니다

답변

0

이것은 바이트 배열 변환 (먼저 문자열로 obj을 변환해야합니다)에 문자열 내 방법 : 또한

public static byte[] StringToByteArray(string hex) 
{ 
    int numberChars = hex.Length; 
    var bytes = new byte[numberChars/2]; 
    for (int i = 0; i < numberChars; i += 2) 
     bytes[i/2] = Convert.ToByte(hex.Substring(i, 2), 16); 
    return bytes; 
} 

이 - SQL 주입 공격에 대해 읽어주십시오, 당신은 시작할 수 있습니다 여기 : http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/. 그냥 문자열 연결 대신 매개 변수를 사용해야합니다.

관련 문제