从 ASP.NET 中的 FileUpload 对话框获取文件路径抛出 FileNotFoundException

Getting the File Path from a FileUpload dialog in ASP.NET throws FileNotFound Exception

我正在尝试实现一个 FileUpload 工具,以允许用户 select 将图像设置为显示图片。我将图像存储在 Azure 数据库中。但是,我的实现一直在硬盘上的不同位置而不是对话框指定的位置寻找图像。

ASP.NET代码:

<asp:FileUpload ID="imageUploader" runat="server" />

后面的 C# 代码:

CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(imageUploader.PostedFile.FileName))
{
         blockBlob.UploadFromStream(fileStream);
}

它给我这个错误:

该代码尝试从该位置获取图像,即使它实际上位于文档的示例图片中。为什么我不能指定图像的实际路径到 System.IO.File.OpenRead?

在使用 AZURE 标记之前,您应该更好地学习 ASP.NET。

PostedFile的

FileName property是指:

Gets the fully qualified name of the file on the client.

你需要的是InputStream属性。您可以直接将其提供给 UploadFromStream:

CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with contents from a local file.
blockBlob.UploadFromStream(imageUploader.PostedFile.InputStream);