asp.net - 使用 http 链接提取 Windows 文件属性

标签 asp.net windows file amazon-elastic-beanstalk

我正在研究 this problemproposed solution对我有用。

但是,现在我需要在我的实际应用程序(AWS Beanstalk .NET Web 应用程序)中完成这项工作。我的 beantalk 应用程序知道图片的 url 来源。知道网址,我可以 get a stream并处理文件(通过创建字节数组甚至位图对象)。

但是,似乎要获取上述文件属性(例如创建文件的相机类型或绘画应用程序),我确实需要一个本地文件,因为这是预期的输入参数。

这对我来说是个问题。我知道 http 链接,我知道字节,但我没有文件路径之类的东西。

我该如何解决这个问题?我需要 Windows 文件属性。

最佳答案

如果我没理解错的话,您想从 URL 中读取图像元数据而不先将其保存到文件中,即直接从 Internet 中读取。

这是一种对我有用的方法:

string demoImageUrl = "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg";

byte[] imgData = null;

using (var wc = new WebClient())
{
    imgData = wc.DownloadData(demoImageUrl);
}

using (var sr = new MemoryStream(imgData, false))
{
    BitmapSource image = BitmapFrame.Create(sr);
    BitmapMetadata md = (BitmapMetadata)image.Metadata;
    string comment = md.Comment;
    string title = md.Title;
    string dateTaken = md.DateTaken;
}

您需要添加对 PresentationCoreWindowsBase 程序集的引用,并且还包括以下命名空间:

using System.Windows.Media.Imaging;

Result

关于asp.net - 使用 http 链接提取 Windows 文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411897/

相关文章:

c# - 使用自定义模板字段进行 Gridview 排序

windows - 为什么 WiX 将 _wixCert_{0-9} 添加到证书友好名称中?

linux - 确定一个已经运行的进程通过一个文件的距离

file - 使用批处理脚本重命名目录中的多个文件

html - 不想要下拉列表中的垂直滚动条

javascript - 将fusioncharts导出为ppt

python - Windows Python (<=3.10.2) 无法运行 `python -m venv .venv`

C# 显示隐藏窗口

python - 使用 os.walk 读取文件

asp.net - MVC 应用程序重启后每个页面都很慢