我有一个服务 .NET 使用 FtpWebRequest 从FTP服务器下载图像。我有一台相机,可以在同一台FTP服务器上存储图像。
如果我的服务在相机完成存储相同图像之前看到图像并尝试下载图像,则图像的“尚未存储的部分”显示为灰色(已损坏)。
问题:如何检测图像是否可以下载(完全存储)?
答案 0 :(得分:1)
如果您可以控制发送服务,则可以使用标记文件来实现此操作。如果发送服务将是例如写完一个“.finished”文件后,你可以等待该文件出现。
但是,我怀疑你无法控制相机中的软件。检测相机是否已完成上传存在一些问题,特别是连接速度较慢。
我认为最好的解决方案是检查文件大小的变化。监视文件夹并查看是否显示新文件。然后,如果文件大小没有改变,例如,一分钟,你下载文件应该是相当安全的。
答案 1 :(得分:1)
使相机软件将图像存储在不同的目录中(我们称之为Dir1)。尝试将文件从此目录移动到另一个目录(我们称之为Dir2)。
如果相机软件仍然打开文件,则移动应该失败,因此只有完成的图像才会从Dir1移动到Dir2。
从Dir2下载图片。
答案 2 :(得分:0)
在大文件后上传另一个小文件。使用小文件来检查“完整性”(或者也可以使用其中的MD5)。