如何确保byte []通过java中的InputStream保存为jpg图像?

时间:2018-04-02 20:49:34

标签: java arrays byte jpeg inputstream

我正在尝试使用Apache Commons FTPClient.storeFile(...)方法将图像保存到FTPServer,这需要InputStream。该图片在开头时显示为Byte[]

这里有一些代码:

InputStream is = new ByteArrayInputStream(byteArray);
boolean  done = ftpClient.storeFile(remotePath, is);

然而,当我下载上传的图像时,它看起来很奇怪,即使尺寸受到尊重,图像看起来也不应该如此。 上传后的图片如下所示: Image after uploading 实际上我无法访问原始图像,但我知道它是一个带有蓝色水的公海图像。 谢谢!

1 个答案:

答案 0 :(得分:0)

所以,VGR!准确地指出,Apache Commons ftpClient有两种工作模式,ASCII和二进制模式。默认情况下,使用ASCII模式,必须通过

明确强制将数据处理为二进制数据
    try {            
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
    } catch (IOException ex) {
        System.out.println("Error: " + ex.getMessage());
        ex.printStackTrace();
    }