通过FTP不断更新图像的简单方法

时间:2015-10-18 03:59:52

标签: c# asp.net .net ftp ip-camera

我们有一台IP摄像头,可以拍摄快照,并通过FTP将文件上传到我们的服务器,间隔为5分钟。它每次上传到相同的文件名,即snapshot.jpg。我们在网页上显示文件如下:

<img src="snapshot.jpg" style="width:100%;">

问题是,当图像处于上传过程中时,它不会显示在网页上,而是显示损坏的图像图标。似乎没有办法使用此图片,因为它上传它的图片尚无法访问。这是我们的快速修复,即检测大于0的文件大小(理论上它在上传过程中),它不能正常工作,正如您所看到的那样,将导致图像根本无法显示:

            if (File.Exists(path + co.filename))
            {
                FileInfo fo = new FileInfo(path + co.filename);

                System.DateTime lastwrite = fo.LastWriteTime;
                decimal minold = Convert.ToDecimal(Math.Round(DateTime.Now.Subtract(lastwrite).TotalMinutes, 1));

                if (fo.Length > 1000 && minold < 15)
                {
                    System.DateTime lastwritecst = lastwrite.AddHours(-1);

                    pl.Controls.Add(new LiteralControl("<span class=\"blacktextmedium titletext\">" + co.name + "<br>&nabla; " + lastwritecst.ToString("HH:mm") + " - " + Convert.ToString(minold) + " min &nabla;</span><br>"));
                    pl.Controls.Add(new LiteralControl(GetImgHtml(url + co.filename)));
                    pl.Controls.Add(new LiteralControl("<br>"));
                }
            }

有人知道如何在图片处于上传过程中避开问题,或者有更好的方法来解决问题吗?我们在服务器端使用C#.NET。

1 个答案:

答案 0 :(得分:1)

不要覆盖&#34; live&#34;图像,将其另存为.tmp文件,并在完成后重命名。