我正在尝试使用Apache Commons FTPClient.storeFile(...)
方法将图像保存到FTPServer,这需要InputStream
。该图片在开头时显示为Byte[]
。
这里有一些代码:
InputStream is = new ByteArrayInputStream(byteArray);
boolean done = ftpClient.storeFile(remotePath, is);
然而,当我下载上传的图像时,它看起来很奇怪,即使尺寸受到尊重,图像看起来也不应该如此。 上传后的图片如下所示: Image after uploading 实际上我无法访问原始图像,但我知道它是一个带有蓝色水的公海图像。 谢谢!
答案 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();
}