2017-04-04 15 views
1

오라클의 이미지 읽기, 아래 참조 : 저장 및 전 aspSmartUpload는 오라클 BLOB 필드에 이미지를 업로드하기 위해 활용하고 기존 ASP

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") 

    '*** Upload Files ***' 
     mySmartUpload.Upload 
     set file = mySmartUpload.Files("file1") 
     Set MyConn = Server.CreateObject("ADODB.Connection") 
     Call OpenConnect(MyConn) 
      sql = "SELECT attach_data, title, idx, attach_type_id FROM c_attachment" 
      Set Rs = Server.CreateObject("ADODB.recordset") 
      Set rs.ActiveConnection = MyConn 
      rs.Source = sql 
      rs.CursorLocation = 3 
      rs.CursorType = 0 
      rs.LockType = 3 
      rs.Open sql 

If not file.IsMissing Then 'Check for missing file 
      'Add the current file in database 
      Rs.AddNew 
      file.FileToField Rs.Fields("attach_data") 
      Rs("title") = "title test" 
      rs("idx") = "134774" 
      rs("attach_type_id") = 1 
      Rs.Update 
      rs.Close 
      set rs = nothing 
     End If 

내가 DB 테이블을 확인

. attach_data가 채워집니다. 지금. 내가 다시 이미지를 읽으려고하면 "Response object : 007 ~ ASP 0106 ~ Type Mismatch ~ 처리되지 않은 데이터 형식이 발생했습니다."라는 메시지가 계속 나타납니다. BinaryWrite에서 오류가 발생했습니다. 도와주세요!

Set MyConn = Server.CreateObject("ADODB.Connection") 
     Call OpenConnect(MyConn) 
      SQLQuery = "select attach_data,title from c_attachment where attach_id = 109" 
      Set RSList = MyConn.Execute(SQLQuery) 
      If RSList.EOF Then 
       blnImgExists = False 
      Else 
         FileData = RSList("attach_data") 
       blnImgExists = true 
      End If 
      if blnImgExists Then 


    Response.Clear 
    Response.ContentType = "image/jpeg" 
    Response.AddHeader "Content-disposition", "attachment; filename=image.jpg" 
    Response.BinaryWrite RSList("attach_data") 
    else 
    response.write "count not open" 
    end if 
+1

명확하게하기 위해 이미지는 BLOB이 아닌 BLOB로 저장됩니다. 열이 BLOB입니까? – REW

+1

와우. 나는 그걸 믿을 수 없어. 감사! 내 질문에 대답하면 대답으로 만들거야 :) –

+1

@REW 막 파고. –

답변

2

이미지는 CLOB (문자 대형 객체)가 아닌 Oracle에 BLOB 데이터 (이진 대형 객체)로 저장되어야합니다.