0

我编写了一个使用 TIdFTP 的 Delphi 5 应用程序。多年来它一直很好用。它的唯一目的是上传一个excel文件。

object ftp: TIdFTP
  OnStatus = ftpStatus
  IPVersion = Id_IPv4
  AutoLogin = True
  Host = 'somewhere.ca'
  Passive = True
  Password = 'guess'
  TransferType = ftBinary
  Username = 'xray'
  ProxySettings.ProxyType = fpcmNone
  ProxySettings.Port = 0
end

我最近迁移到 delphi 2009,因为我重新加载了我的机器并且 delphi 5 现在已经消失了。

该应用程序看起来仍然可以正常工作,但是在 1.5 MB 文件的大部分过程中,该文件已损坏。看起来字节已被删除,并且上传的文件比原始文件短(大约 200 字节)。

我的第一个想法是传输类型,所以我将其设置为二进制,但除此之外,我不知道。

有任何想法吗?

谢谢你!mp

4

4 回答 4

0

您使用的是哪个版本的 Indy?你试过最新的吗?
另外,您是否尝试过使用其他类型的文件(纯文本、可执行文件...)

于 2009-09-21T18:26:21.557 回答
0

Delphi 5 和 Delphi 2009 之间的一个很大区别是 Delphi 2009 使用 Unicode。也许您正在混合使用 unicode 和非 unicode?接收 ASCII,但将其视为 UTF8?

于 2009-09-21T19:50:47.637 回答
0

像你的一样,我的第一个想法是传输没有发生二进制......这似乎更有可能考虑到你的后续更改文件名解决了问题。你有可以用来跟踪 ftp 对话的数据包嗅探器吗?通过这样做,您将能够确定模式是否设置正确。

-大学教师

于 2009-09-21T19:53:44.813 回答
0

Delphi 5 没有安装 Indy 组件。因此,您必须自己下载并安装它。我从来没有让它工作。现在,我使用的是 Delphi 7,它已经预装了它。所以,我从来没有遇到过Indy的问题。只有当我下载它以供使用时。

于 2010-06-28T12:54:18.653 回答