【问题标题】:Files not saving correctly on ftp in FTPClient文件未正确保存在 FTPClient 中的 ftp 上
【发布时间】:2015-03-12 06:37:06
【问题描述】:

我正在使用 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);

执行最后一行代码后,成功创建了一个具有预期名称的文件,但是当我想打开该文件时,我在浏览器中看到“图像 test.jpg 无法显示,因为它包含错误”。有什么问题?

【问题讨论】:

  • 请添加更多代码。 ftpClient是什么对象@你怎么创建的...
  • 以ASCII方式上传Jpeg图像文件等二进制文件时会出现这种错误。您的“ftpClient.storeFile”是否根据要传输的文件内容设置模式 BINARY/ASCII。
  • 为什么,为什么,哦,你为什么要将字节转换为Byte[],然后又转换回byte[]

标签: java upload ftp-client


【解决方案1】:

听起来您需要将 ftp 客户端设置为二进制传输

ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

根据文档

如果当前文件类型为 ASCII,则文件中的行分隔符透明转换为 NETASCII 格式

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2021-03-05
    • 2014-12-08
    • 1970-01-01
    相关资源
    最近更新 更多