0

我们在我的项目中使用 FTPWebRequest 类来上传 PDF 文件。为了上传文件,我们通过从 (FtpWebRequest)WebRequest 的对象获取 GetRequestStream() 来使用 Write 方法。

上传文件后,我们读取文件以获取长度(文件大小)。我们同样使用 FtpWebResponse 的 GetResponseStream 方法。

当文件大小较小时,一切正常,但是当上传大量文件时,它会给出“550”拒绝访问错误。

在我看来,当在 FTP 上写入大文件并且在关闭流之后,如果我们立即去读取文件,那么它会产生访问被拒绝的问题,可能是 FTP 服务器没有从文件中删除锁定或者它仍在写入文件从流。

怎样才能摆脱这个问题。当我们关闭用于上传文件的流时,是否有任何事件或方法可以发现文件已成功写入 FTP 服务器?

4

1 回答 1

0

虽然我不知道为什么,但以下步骤帮助我解决了这个问题

  1. 在 FTP Server 上将缓冲区大小设置为低,一般为 64 K,您可以将其设置为 32 k

  2. 将块发送到服务器,而不是在流中一次性发送,因为在一次性发送时,数据保存在缓冲区中,当我们请求读取文件时会提示错误。

于 2011-07-05T14:56:01.003 回答