使用 C# 中的元数据提取器从 URL 获取元数据



我使用了以下代码,但我无法从中得到任何响应我遇到了例外情况,例如"不支持给定路径的格式。">

else if (Path.GetExtension(blobFilePath).ToLower() == ".jpg"  ||
         Path.GetExtension(blobFilePath).ToLower() == ".jpeg" ||
         Path.GetExtension(blobFilePath).ToLower() == ".gif"  || 
         Path.GetExtension(blobFilePath).ToLower() == ".png")
{
    filepath = blob.Uri.AbsoluteUri;
}
IEnumerable<MetadataExtractor.Directory> directories =
    ImageMetadataReader.ReadMetadata(filepath.ToString());

你能帮我解决这个问题吗?

谢谢

您使用ImageMetadataReader.ReadMetadata的重载需要文件系统路径。使用 URL 不起作用。

相反,您必须打开网络流并传递它。假设您的URL使用HTTP或HTTPS,这样的事情应该可以做到:

using (var client = new HttpClient())
using (var response = await client.GetAsync(url))
using (var content = response.Content)
using (var stream = await content.ReadAsStreamAsync())
{
    // NOTE passing a stream here, not a string
    var directories = ImageMetadataReader.ReadMetadata(stream);
    // ...
}

相关内容

  • 没有找到相关文章

最新更新