Java HTTP Post Applet 服务器 - 内部生成的图像 [英] Java HTTP Post Applet server - Internally generated Image
问题描述
我在小程序中使用 J2D 创建了一个 BufferedImage.我想使用 HTTP Post @ http://localhost:3001/upload/file 上传这个 BufferedImage.
I have a BufferedImage created using J2D in an applet. I want to upload this BufferedImage using HTTP Post @ http://localhost:3001/upload/file.
我有一个 ROR 服务器处理服务器端的事情,我正在寻找客户端的 Java 代码.
I have a ROR server handling the serverside of things, I am looking for the Java code for the client.
我能找到的所有示例都涉及上传文件.
All the examples I can find involve uploading Files.
有人知道如何上传 BufferedImage 吗?
Anybody know how to upload a BufferedImage?
干杯,
slotishtype
slotishtype
推荐答案
好的,这里是创建缓冲图像的代码,将其编码为 Base64 字符串,然后使用 apache 公共库将字符串通过 http 发布到 ROR服务器.
OK, So here is the code that creates the bufferedimage, encodes it as a Base64 string and then using the apache commons library posts the string over http to a ROR Server.
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 服务器简单地获取字符串,对其进行解码并将其保存到硬盘......
The ROR server simply takes the string, decodes it and saves it to the harddrive....
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
slotishtype
这篇关于Java HTTP Post Applet 服务器 - 内部生成的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!