使用http链接提取Windows文件属性

时间:2018-05-18 12:59:20

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

我正在处理this problemproposed solution正在为我工​​作。

但是,现在我需要在我的实际应用程序中使用它,这是一个AWS Beanstalk .NET Web应用程序。我的beanstalk应用程序知道图片的url源。知道了url,我可以get a stream处理文件(通过创建一个字节数组甚至一个Bitmap对象)。

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

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

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

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望首先从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