Java HTTP Post Applet server - Внутренне сгенерированный образ - PullRequest
0 голосов
/ 03 декабря 2010

У меня есть BufferedImage, созданный с использованием J2D в апплете. Я хочу загрузить этот BufferedImage, используя HTTP Post @ http://localhost:3001/upload/file.

РЕДАКТИРОВАТЬ: у меня есть ROR-сервер, обрабатывающий стороны сервера, я ищу код Java для клиента.

Все примеры, которые я могу найти, включают загрузку файлов.

Кто-нибудь знает, как загрузить BufferedImage?

Приветствия

slotishtype

1 Ответ

0 голосов
/ 04 декабря 2010

ОК, так вот код, который создает изображение с буферизацией, кодирует его в виде строки Base64, а затем с помощью библиотеки apache commons отправляет строку через http на сервер ROR.

        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

end

Спасибо за помощь, ребята,

slotishtype

...