2013-11-14 2 views
0

모델 엔터티 Image이 있습니다.
엔터티의 유형 필드는 Blob입니다.
파일 업로드를 수행하려면 Apache Commons FileUpload Library을 사용하십시오.
는, 내가 다음 코드를 사용하십시오 내 파일을 얻으려면 :DataStore에 GAE Blob로 InputStream 저장

Image image = new Image(); 
    ServletFileUpload upload = new ServletFileUpload(); 
    try { 
     FileItemIterator itr = upload.getItemIterator(req); 
     while(itr.hasNext()){ 
      FileItemStream item = itr.next(); 

      if(!item.isFormField()) 
      { 
       image.setImageType(item.getContentType()); 
       InputStream stream = item.openStream(); 
       image.setImageData(???); //How to Set Blob Data from Input Stream 
      } 
     } 
    } catch (FileUploadException e) { 
     resp.sendError(500); 
    } 

감사합니다.

답변

0

는 바이트 배열에 InputStream을 복사 할 아파치 코 몬즈는 FileUpload와 함께 제공되는 Streams.copy(input, output, doClose) 유틸리티 메소드를 사용하여 그에서 Blob 만들 :

InputStream stream = ... 
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
Streams.copy(stream, bytes, true /* close stream after copy */); 
Blob blob = new Blob(bytes.toByteArray()); 
image.setImageData(blob);