如何保证在java中通过InputStream将byte[]保存为jpg图片?
How to ensure that byte[ ] is saved as a jpg image through an InputStream in java?
我正在尝试使用 Apache Commons FTPClient.storeFile(...)
方法将图像保存到 FTPServer,这需要 InputStream
。图片以 Byte[]
开头。
这里是一些代码:
InputStream is = new ByteArrayInputStream(byteArray);
boolean done = ftpClient.storeFile(remotePath, is);
但是,当我下载上传的图片时,它看起来很奇怪,即使尺寸符合要求,图片看起来也不应该。
上传后的图片如下所示:
Image after uploading
实际上我无法访问原始图像,但我知道它是一张带有蓝色海水的公海图像。
谢谢!
所以,VGR!准确指出,Apache Commons ftpClient有两种工作模式,ASCII和二进制模式。默认情况下使用 ASCII 模式,必须通过
显式强制将数据作为二进制数据处理
try {
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
} catch (IOException ex) {
System.out.println("Error: " + ex.getMessage());
ex.printStackTrace();
}
我正在尝试使用 Apache Commons FTPClient.storeFile(...)
方法将图像保存到 FTPServer,这需要 InputStream
。图片以 Byte[]
开头。
这里是一些代码:
InputStream is = new ByteArrayInputStream(byteArray);
boolean done = ftpClient.storeFile(remotePath, is);
但是,当我下载上传的图片时,它看起来很奇怪,即使尺寸符合要求,图片看起来也不应该。 上传后的图片如下所示: Image after uploading 实际上我无法访问原始图像,但我知道它是一张带有蓝色海水的公海图像。 谢谢!
所以,VGR!准确指出,Apache Commons ftpClient有两种工作模式,ASCII和二进制模式。默认情况下使用 ASCII 模式,必须通过
显式强制将数据作为二进制数据处理 try {
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
} catch (IOException ex) {
System.out.println("Error: " + ex.getMessage());
ex.printStackTrace();
}