Java HTTP Post Applet服务器 – 内部生成的Image

我在applet中使用J2D创建了一个BufferedImage。 我想使用HTTP Post @ http:// localhost:3001 / upload / file上传这个BufferedImage。

编辑:我有一个ROR服务器处理服务器的东西,我正在寻找客户端的Java代码。

我能找到的所有例子都涉及上传文件。

有谁知道如何上传BufferedImage?

干杯,

slotishtype

好的,所以这里是创建bufferedimage的代码,将其编码为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 

结束

谢谢你的帮助,

slotishtype