Umbraco/.NET - 使用 GDI+ 访问图像元数据,找不到文件异常
Umbraco/.NET - using GDI+ to access image metadata, file not found exception
我正在尝试使用 System.Drawing.Image.FromFile
访问我的 Umbraco 媒体库中图像的 EXIF 元数据,同时我可以让我的代码工作,传递我硬盘上本地文件的路径(例如 c:\ example.jpg) 如果我为我的媒体库中的项目传递 URL,我会收到一个文件未找到的异常。
我尝试将 URL 与 http://localhost:xxxx 连接起来,但出现格式不正确的错误。我已经尝试使用完整的 Url 在线托管图像并获得相同的图像,这让我怀疑 FromFile 不接受 Url。
我找不到任何文档来支持这个理论,而且看起来很愚蠢?
TL;DR 为什么路径适用于 System.Drawing.Image.FromFile
但不适用于 Url?
这是我的代码:
var testImage = Model.Value<IPublishedContent>("testImage");
System.Drawing.Image image = System.Drawing.Image.FromFile(testImage.Url);
我敢猜测 Image.FromFile 需要一个正确的文件路径,而不是像您提供的 URL。
看看这个问题:ASP.NET Get physical filepath from URL 看看提供的选项是否适合您。
所以你会做类似的事情
var testImage = Model.Value<IPublishedContent>("testImage");
var physicalPath = Server.MapPath(testImage.Url);
System.Drawing.Image image = System.Drawing.Image.FromFile(physicalPath);
(我没有测试过,但我希望它能让你更接近一些)
我正在尝试使用 System.Drawing.Image.FromFile
访问我的 Umbraco 媒体库中图像的 EXIF 元数据,同时我可以让我的代码工作,传递我硬盘上本地文件的路径(例如 c:\ example.jpg) 如果我为我的媒体库中的项目传递 URL,我会收到一个文件未找到的异常。
我尝试将 URL 与 http://localhost:xxxx 连接起来,但出现格式不正确的错误。我已经尝试使用完整的 Url 在线托管图像并获得相同的图像,这让我怀疑 FromFile 不接受 Url。
我找不到任何文档来支持这个理论,而且看起来很愚蠢?
TL;DR 为什么路径适用于 System.Drawing.Image.FromFile
但不适用于 Url?
这是我的代码:
var testImage = Model.Value<IPublishedContent>("testImage");
System.Drawing.Image image = System.Drawing.Image.FromFile(testImage.Url);
我敢猜测 Image.FromFile 需要一个正确的文件路径,而不是像您提供的 URL。
看看这个问题:ASP.NET Get physical filepath from URL 看看提供的选项是否适合您。
所以你会做类似的事情
var testImage = Model.Value<IPublishedContent>("testImage");
var physicalPath = Server.MapPath(testImage.Url);
System.Drawing.Image image = System.Drawing.Image.FromFile(physicalPath);
(我没有测试过,但我希望它能让你更接近一些)