我有一台连接到网络的摄像头,提供可以通过IP访问的图像。例如,像这样的东西。
http://170.1.2.3/image?camera=2
我收到了一个jpg文件,我可以使用普通的html轻松地在网页上显示。
<img src="http://170.1.2.3/image?camera=2" />
但是,不是简单地显示从页面加载时看到的相机图像,我还想使用MVC4应用程序将此图像本地保存到服务器。另外,在文件名中包含时间戳会很不错。我找不到一个看起来正确的例子,我没有运气。
让我们说我想从最基本的例子开始:
string imgUrl = "http://170.1.2.3/image?camera=2";
savelocally(imgurl, "newfilename-"+DateTime.Now.ToString());
..和savelocally()应将文件放在&#34;〜/ Uploads&#34;中。我该怎么做呢?我遇到的所有示例都是从桌面上传文件。我不知道如何将其翻译成抓取远程图像。
更新
正如评论所指出的,这是一个不完整的答案。
string url = "http://170.1.2.3/image?camera=2";
string localFilename = @"C:\Projects\MvcApplication1\MvcApplication1\Uploads\tofile.jpg";
using (WebClient client = new WebClient())
{
client.DownloadFile(url, localFilename);
}
它有效,但我不喜欢文件路径是绝对路径的事实。我尝试用〜/ Uploads / tofile.jpg替换localFilename但是它会导致执行错误。如果可能,我想避免为上传文件夹设置固定位置。