RMI客户端/服务器 - 文件传输

时间:2016-03-22 11:56:26

标签: java ejb rmi

我想实现一个Java程序,客户端可以从客户端上传文件(图像,文本等)并将其发送到服务器端,文件将存储在服务器上的文件夹中电脑。

这可行且现实吗? EJB是更好的方法吗?有没有好的资源?

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤在通用包中创建一个类,然后从客户端调用createByteArray()并将图像转换为字节数组。然后将其传递到骨骼中,并使用createBufferedImage()重建图像。最后使用toFile()将其另存为JPEG

/**
 *
 * @author Randula
 */
public class TransportableImage {
/**
 * 
 * @param bufferedImage
 * @return
 * @throws IOException 
 */
    public byte[] createByteArray(BufferedImage bufferedImage) 
            throws IOException {

        byte[] imageBytes = null;

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        JPEGImageEncoder jpg = JPEGCodec.createJPEGEncoder(bos);
        jpg.encode(bufferedImage);
        bos.flush();
        imageBytes = bos.toByteArray();
        bos.close();
        return imageBytes;
    }
//Reconstruct the BufferedImage

    public BufferedImage createBufferedImage(byte[] imageBytes) 
            throws IOException {

        InputStream is = new ByteArrayInputStream(imageBytes);
        JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(is);
        BufferedImage image = decoder.decodeAsBufferedImage();
        is.close();
        return image;
    }
//Save a JPEG image

    public void toFile(File file, byte[] imageBytes) 
            throws IOException {

        FileOutputStream os = new FileOutputStream(file);
        os.write(imageBytes, 0, imageBytes.length);
        os.flush();
        os.close();
    }

}

答案 1 :(得分:0)

之前已经问过这个问题。以下是更多信息的链接 how to upload file to http remote server using java?