【问题标题】:Simple way to show image being continually updated via FTP显示通过 FTP 不断更新的图像的简单方法
【发布时间】:2015-10-18 03:59:52
【问题描述】:

我们有一个 IP 摄像头,它每隔 5 分钟拍摄一次快照并通过 FTP 将文件上传到我们的服务器。它每次都上传到相同的文件名,即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。

【问题讨论】:

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


    【解决方案1】:

    不要覆盖“实时”图像,将其保存为.tmp 文件并在完成后重命名。

    【讨论】:

    • 我无法控制相机及其上传方式。它只允许上传到 1 个带有 jpg 扩展名的文件名。
    • 没关系,我只是说不要使用它上传的文件。不要链接到snapshot.jpg,而是在后台将完成时复制到livesnapshot.jpg 并链接到那个。
    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    相关资源
    最近更新 更多