我使用FTPClient在ftp服务器上上传文件。首先,我有一个TempFile
对象(无论这个对象是什么),它有一个getBytes()
方法。此方法返回字节列表:
List<Byte> byteList = tempFile.getBytes();
Byte[] byteObjects= new Byte[byteList.size()];
byte[] byteArray = new byte[byteList.size()];
byteObjects = byteList.toArray(byteObjects);
byteArray = ArrayUtils.toPrimitive(byteObjects);
InputStream stream = new ByteArrayInputStream(byteArray);
ftpClient.storeFile(file.getName()+"."+file.getExtension(), stream);
执行最后一行代码后,文件成功创建了预期名称,但是当我想打开该文件时,我看到&#34;图片test.jpg无法显示,因为它包含错误&#34 ;在浏览器中。有什么问题?
答案 0 :(得分:3)
听起来你需要将你的ftp客户端设置为二进制传输
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
根据文档
如果当前文件类型为ASCII,则文件中的行分隔符将透明地转换为NETASCII格式