4

我有一个使用FtpWebRequest从 FTP 服务器下载图像的服务.NET 。我有一台将图像存储在同一 FTP 服务器上的相机。

如果我的服务在相机完成存储相同图像之前看到图像并尝试下载它,则图像的“尚未存储的部分”显示为灰色(损坏)。

问题:如何检测图像是否可以下载(完全存储)?

4

3 回答 3

1

如果您可以控制发送服务,则可以使用标记文件来实现。如果发送服务在完成后会写入一个“.finished”文件,您可以等待该文件出现。

但是,我怀疑您无法控制相机中的软件。检测相机是否已完成上传存在一些问题,特别是在互联网连接速度较慢的情况下。

我认为最好的解决方案是检查文件大小的变化。监视文件夹并查看是否出现新文件。然后,如果文件大小在一分钟内没有改变,那么下载文件应该是相当安全的。

于 2010-11-16T09:51:53.153 回答
1

使相机软件将图像存储在不同的目录中(我们称之为 Dir1)。尝试将文件从这个目录移动到另一个目录(我们称之为 Dir2)。

如果相机软件仍然打开文件,则移动应该失败,因此只有完成的图像才会从 Dir1 移动到 Dir2。

从 Dir2 下载图像。

于 2010-11-16T09:54:09.740 回答
0

在大文件之后上传另一个小文件。使用小文件检查“完整性”(或者里面的 MD5 也可以)。

于 2010-11-16T09:50:22.080 回答