从 HTML 网页 (C#) 将文件上传到 Azure Blob?
Upload file to Azure Blob from HTML webpage (C#)?
我想弄清楚如何从 html 表单中获取文件并将其保存到我的 Azure Blob 存储中。我发现很多关于为 JavaScript 执行此操作的帖子,但我正在尝试通过 C# 执行此操作。我发现的一个消息来源说要做
using (YourFileUpload.PostedFile.InputStream)
{
blockBlob.UploadFromStream((FileStream)YourFileUpload.PostedFile.InputStream);
}
但是 PostedFile
不存在于 HttpPostedFileBase
对象中。
到目前为止我构建的代码是
public static int UploadFile(string FileName, HttpPostedFileBase UploadedFile, int ExistingFileID = 0)
{
var StorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
var BlobClient = StorageAccount.CreateCloudBlobClient();
var Container = BlobClient.GetContainerReference("ffinfofiles");
var BlobBlock = Container.GetBlockBlobReference(FileName);
var FileExtension = Path.GetExtension(UploadedFile.FileName.ToLower());
using (UploadedFile.InputStream)
{
BlobBlock.UploadFromStream((FileStream)UploadedFile.InputStream);
}
但是当我 运行 这个时我得到错误:
Unable to cast object of type 'System.Web.HttpInputStream' to type 'System.IO.FileStream'.
我需要用什么方法才能将文件上传到 Azure Blob?
您不应尝试将 UploadedFile.InputStream
转换为 FileStream
。 CloudBlockBlob.UploadFromStream
需要一个 Stream
对象,因此它应该能够直接与 UploadedFile.InputStream
.
一起工作
我想弄清楚如何从 html 表单中获取文件并将其保存到我的 Azure Blob 存储中。我发现很多关于为 JavaScript 执行此操作的帖子,但我正在尝试通过 C# 执行此操作。我发现的一个消息来源说要做
using (YourFileUpload.PostedFile.InputStream)
{
blockBlob.UploadFromStream((FileStream)YourFileUpload.PostedFile.InputStream);
}
但是 PostedFile
不存在于 HttpPostedFileBase
对象中。
到目前为止我构建的代码是
public static int UploadFile(string FileName, HttpPostedFileBase UploadedFile, int ExistingFileID = 0)
{
var StorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
var BlobClient = StorageAccount.CreateCloudBlobClient();
var Container = BlobClient.GetContainerReference("ffinfofiles");
var BlobBlock = Container.GetBlockBlobReference(FileName);
var FileExtension = Path.GetExtension(UploadedFile.FileName.ToLower());
using (UploadedFile.InputStream)
{
BlobBlock.UploadFromStream((FileStream)UploadedFile.InputStream);
}
但是当我 运行 这个时我得到错误:
Unable to cast object of type 'System.Web.HttpInputStream' to type 'System.IO.FileStream'.
我需要用什么方法才能将文件上传到 Azure Blob?
您不应尝试将 UploadedFile.InputStream
转换为 FileStream
。 CloudBlockBlob.UploadFromStream
需要一个 Stream
对象,因此它应该能够直接与 UploadedFile.InputStream
.