0
public class StorageService
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=leepiostorage;AccountKey=removed for this post");
public async Task Upload(string id, Stream data)
{
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("images");
await container.CreateIfNotExistsAsync();
container.SetPermissions(
new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
CloudBlockBlob blockBlob = container.GetBlockBlobReference(id);
await blockBlob.UploadFromStreamAsync(data, data.Length);
}
public async Task UploadBlogPhoto(string id, Stream data)
{
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
await container.CreateIfNotExistsAsync();
container.SetPermissions(
new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
CloudBlockBlob blockBlob = container.GetBlockBlobReference(id);
await blockBlob.UploadFromStreamAsync(data, data.Length);
}
}
ここでは、2番目のメソッド「UploadBlogPhoto」を使用しようとしているStorageServicesクラスを示します。最初の作品です。スクリプトを使用してビューAzure Blobストレージオブジェクトリファレンスがオブジェクトのインスタンスに設定されていない
[HttpPost]
public async Task<ActionResult> UploadPhoto(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileExt = Path.GetExtension(file.FileName);
if (fileExt.ToLower().EndsWith(".png") || fileExt.ToLower().EndsWith(".jpg") ||
fileExt.ToLower().EndsWith(".gif"))
{
var str = "example";
await service.UploadBlogPhoto(str, file.InputStream);
}
}
return RedirectToAction("Index");
}
:ここ
は、ブログコントローラのメソッドである
@using (Html.BeginForm("UploadPhoto", "Blog", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="browseimg">
<input type="file" class="display-none" name="file" id="files" onchange="this.form.submit()" />
</div>
}
<button class="btn btn-primary width-100p main-bg round-border-bot" id="falseFiles">
Upload billede
</button>
$(document)
.ready(function() {
$('#falseFiles')
.click(function() {
$("#files").click();
});
});
ちゃんと「画像」と呼ばれるコンテナにしたがって、最初のメソッドによるアップロード。私は単に第二の容器にアップロードし、他のメソッドを追加しようとすると、私は
await service.UploadBlogPhoto(str, file.InputStream);
私はトリプルすべてをチェックしました、任意のアイデアで
Object reference not set to an instance of an object.
を取得しますか?事前に感謝します
を固定しましたか? – sachin
はい、file.InputStreamはイメージを正常に取得します。 – crystyxn
エラーは 'service.UploadBlogPhoto'に例外がありますが、そのメソッド内のブレークポイントがヒットしている場合は、' UploadBlogPhoto'の中でデバッグしてからF10を数回使って正確な行を特定できるはずです。 – sachin