2010-12-03 1 views
0

애플릿에서 J2D를 사용하여 작성된 BufferedImage가 있습니다. HTTP POST @http://localhost:3001/upload/file을 사용하여이 BufferedImage를 업로드하고 싶습니다.Java HTTP Post 애플릿 서버 - 내부적으로 생성 된 이미지

EDIT : 사물의 서버 측을 처리하는 ROR 서버가 있는데 클라이언트 용 Java 코드를 찾고 있습니다.

내가 찾을 수있는 모든 예는 파일 업로드와 관련이 있습니다.

아무도 BufferedImage를 업로드하는 방법을 알고 있습니까?

건배,

+0

Google에서 첫 번째 결과는 다음 링크입니다. http://www.java-tips.org/java-ee-tips/java-servlet/how-to-return-an-i mage-in-a-servlet.html – newbie

+0

그래,하지만 그것은 서블릿 코드이다. 애플릿에서 실행되는 클라이언트 코드를 찾고 있습니다. 좋은 지적이지만, 나는 그 질문을 수정했다. – slotishtype

+0

이 질문에 대한 답변은 도움이 될 수 있습니다. http://stackoverflow.com/questions/3577834/how-to-send-an-image-from-a-java-applet-to-javascript –

답변

0

OK

slotishtype는, 그래서 여기에 아파치 평민 라이브러리에 게시물 ROR 서버에 HTTP를 통해 문자열을 사용하여 다음의 BufferedImage를 생성하는 Base64로 문자열로 인코딩하고 코드입니다.

 BufferedImage bi = new BufferedImage(110, 110, BufferedImage.TYPE_INT_RGB); 
     Graphics2D g2 = bi.createGraphics(); 
     AffineTransform saveTX = new AffineTransform(); 
     saveTX.translate(translateX, translateY); 
     saveTX.scale(0.2, 0.2); 
     g2.setTransform(saveTX); 
     this.paint(g2); 

     ImageInputStream bigInputStream = ImageIO.createImageInputStream(bi); 

     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ImageIO.write(bi, "BMP", baos); 
     byte[] bytes = baos.toByteArray(); 
     String dataImg = new Base64().encodeBase64String(bytes); 

     PostMethod post = new PostMethod("http://localhost:3001/upload/file"); 

     post.addParameter("upload[test]", dataImg); 

     HttpClient client = new HttpClient(); 
     int status = client.executeMethod(post); 

     g2.dispose(); 

는 ROR 서버는 단순히 .... 그것을 디코딩하고 하드 드라이브에 저장, 도움말들에 대한

require "base64" 
class UploadController < ApplicationController 

#Token = nil 
skip_before_filter :verify_authenticity_token 

def index 
    render :file => 'app\views\upload\uploadfile.html.erb' 
end 
def file 

File.open('test.gif', 'wb') do|f| 
    f.write(Base64.decode64(params[:upload][:test])) 
end 

    render :text => "File has been uploaded successfully" 
end 

감사합니다,

slotishtype을 문자열을 사용합니다