C# 将文件上载到azure blob存储,然后发送带有files base64字符串的http响应不';行不通
我正在尝试使用azures blob存储实现以下目标C# 将文件上载到azure blob存储,然后发送带有files base64字符串的http响应不';行不通,c#,.net,azure,azure-storage-blobs,C#,.net,Azure,Azure Storage Blobs,我正在尝试使用azures blob存储实现以下目标 将文件上载到azure blob存储 然后发送一个包含文件base64字符串的http响应 奇怪的是,我只能让其中一个工作,因为它会导致另一个停止工作,具体取决于代码的顺序 HttpPostedFile image = Request.Files["froalaImage"]; if (image != null) { string fileName = RandomSt
HttpPostedFile image = Request.Files["froalaImage"];
if (image != null)
{
string fileName = RandomString() + System.IO.Path.GetExtension(image.FileName);
string companyID = Request.Form["companyID"].ToLower();
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference(companyID);
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
// Retrieve reference to a blob named "filename".
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
// Create or overwrite the blob with contents from a local file.
using (image.InputStream)
{
blockBlob.UploadFromStream(image.InputStream);
byte[] fileData = null;
using (var binaryReader = new BinaryReader(image.InputStream))
{
fileData = binaryReader.ReadBytes(image.ContentLength);
}
string base64ImageRepresentation = Convert.ToBase64String(fileData);
// Clear and send the response back to the browser.
string json = "";
Hashtable resp = new Hashtable();
resp.Add("link", "data:image/" + System.IO.Path.GetExtension(image.FileName).Replace(@".", "") + ";base64," + base64ImageRepresentation);
resp.Add("imgID", "BLOB/" + fileName);
json = JsonConvert.SerializeObject(resp);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();
}
}
上面的代码将文件上载到azure的blob存储,但是base64字符串将为空
但是如果我把行blockBlob.UploadFromStream(image.InputStream)代码>行下方string base64ImageRepresentation=Convert.ToBase64String(fileData)代码>
我将获得base64字符串没有问题,但是文件未正确上载到azure的blob存储。第一次使用后,您是否需要重置流位置
image.InputStream.Seek(0, SeekOrigin.Begin);