C# 如何将URI映像路径传递给FileInfo类?
我有下面的程序将图像转换为字节数组C# 如何将URI映像路径传递给FileInfo类?,c#,image,C#,Image,我有下面的程序将图像转换为字节数组 public byte[] ReadImageFile(string imageLocation) { byte[] imageData = null; FileInfo fileInfo = new FileInfo(imageLocation); long imageFileLength = fileInfo.Length; FileStream
public byte[] ReadImageFile(string imageLocation)
{
byte[] imageData = null;
FileInfo fileInfo = new FileInfo(imageLocation);
long imageFileLength = fileInfo.Length;
FileStream fs = new FileStream(imageLocation, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
imageData = br.ReadBytes((int)imageFileLength);
return imageData;
}
如果我将该值作为“D:\\ENSource\\1.png”
传递,则它工作正常
但如果我将值作为“”发送,则会引发异常
不支持URI格式
如何实现这一点?
FileInfo
和FileStream
使用本地文件,无法向其中任何一个文件“传递Uri”
要处理Uri,您可以:
- 将服务器映射到本地驱动器(即,如果服务器支持WebDAV)
- 使用Http相关类(如
,HttpClient
)从服务器下载文件并获取字节。即WebClient
FileInfo
和FileStream
使用本地文件,无法向其中任何一个文件“传递Uri”
要处理Uri,您可以:
- 将服务器映射到本地驱动器(即,如果服务器支持WebDAV)
- 使用Http相关类(如
,HttpClient
)从服务器下载文件并获取字节。即WebClient
- 编辑强>
请看@Alexei的回复。
他抛出了一个使用webclient的更好(更简单)的解决方案。
我将在这里留下响应,以防有人希望看到查询web服务器的更“详细”的示例
我刚刚给阿列克谢打了个勾号(他说得很对),但只是为了填上这个
您与web服务器而不是文件系统通信。
因此,您需要手动从服务器“请求”数据,然后传递结果流
请参阅以下代码段。
编辑强>
请看@Alexei的回复。
他抛出了一个使用webclient的更好(更简单)的解决方案。
我将在这里留下响应,以防有人希望看到查询web服务器的更“详细”的示例
我刚刚给阿列克谢打了个勾号(他说得很对),但只是为了填上这个
您与web服务器而不是文件系统通信。
因此,您需要手动从服务器“请求”数据,然后传递结果流
请参阅以下代码段。
例如,使用
WebClient
类从URI位置下载图像。您不能。不支持URI格式。如果要通过internet加载图像,请查看使用WebClient
类从URI位置下载图像。您不能。不支持URI格式。如果你想通过互联网加载图像,请看一看谢谢Alexei。。。var webClient=新的webClient();byte[]imageBytes=webClient.DownloadData(“);感谢Alexei…var webClient=new webClient();byte[]imageBytes=webClient.DownloadData(“);