ตอนที่ 4 : How to use .Net (Asp.net) Upload file to Blob การอัพโหลดไฟล์ลงใน Blob
ตอนที่ 4 : How to use .Net (Asp.net) Upload file to Blob การอัพโหลดไฟล์ลงใน Blobบทความนี้จะเป็นตัวอย่างการเขียน ASP.Net กับ Blob Storage ของ Windows Azure โดยจะยกตัวอย่าง คือการใช้ ASP.Netอ่านไฟล์ที่อยู่ใน Local แล้ว Upload ไฟล์ไปจัดเก็บไว้ในบน Blob และการ Upload ไฟล์ผ่านการ Browse ของ Control ใน ASP.Net
ไฟล์ทีจะ Upload ลงไปใน Blob
Syntax การ Upload
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
blockBlob.UploadFromStream(fileStream);
}
ตัวอย่างไฟล์รูปที่จะ Upload ไปไว้บน Blob
Example 1 เขียน ASP.Net เพื่ออ่านไฟล์จาก Local แล้ว Upload ไปยัง Blob บน Windows Azure
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
namespace myWebApp
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Create the connectionstring
String StorageConnectionString = "DefaultEndpointsProtocol=https;AccountName=[yourAccount];AccountKey=[yourKey]";
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(StorageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("pictures");
// Retrieve reference to a blob named "win.jpg".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("win.jpg");
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"C:\img\win.jpg"))
{
blockBlob.UploadFromStream(fileStream);
}
this.lblResult.Text = "'win.jpg' has been uploaded.";
}
}
}
หรือจะดูผ่านโปรแกรม Azure Storage Explorer เลือก View
กรณีที่เป็น Image ก็จะแสดงรูปภาพใน Tags ของ Image
เป็น URL ที่อยู่ของ Blob
Example 2 เขียน ASP.Net เพื่อ Browse ไฟล์แล้ว Upload ไปยัง Blob บน Windows Azure
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
using System.IO;
namespace myWebApp
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
// Create the connectionstring
String StorageConnectionString = "DefaultEndpointsProtocol=https;AccountName=[yourAccount];AccountKey=[yourKey]";
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(StorageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("pictures");
// Retrieve reference to a blob.
CloudBlockBlob blockBlob = container.GetBlockBlobReference(this.fiUpload.FileName);
// Create or overwrite the "myblob" blob with contents from a local file.
blockBlob.UploadFromStream(this.fiUpload.PostedFile.InputStream);
this.lblResult.Text = "'" + this.fiUpload.FileName + "' has been uploaded.";
}
}
}