Я создаю приложение для облачного хранилища, используя ASP.NET MVC, написанное на C#. В настоящее время я могу загружать файлы в контейнер больших двоичных объектов хранилища Azure, но имя каждого файла отображается как слово «изображения» на самой странице загрузки. Имена файлов верны в Azure.
Я хочу отображать фактическое имя файла, а не слово «изображения».
Фрагмент кода из моего контроллера:
public ActionResult Upload()
{
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("AzureString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference("Container");
List<string> blobs = new List<string>();
foreach (var blobItem in blobContainer.ListBlobs())
{
blobs.Add(blobItem.Uri.ToString());
}
return View(blobs);
}
[HttpPost]
public ActionResult Upload(HttpPostedFileBase image)
{
if (image.ContentLength > 0)
{
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("AzureString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer blobContainer = blobClient.GetContainerReference("Container");
CloudBlockBlob blob = blobContainer.GetBlockBlobReference(image.FileName);
blob.UploadFromStream(image.InputStream);
}
return RedirectToAction("Upload");
}
Соответствующее представление:
@{
ViewBag.Title = "Upload";
}
@if (Request.IsAuthenticated)
{
<h2>Upload</h2>
<p>
@using (Html.BeginForm("Upload", "Files", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="image" />
<input type="submit" value="Upload" />
}
</p>
<ul style="list-style-type: none; padding:0">
@foreach (var item in Model)
{
<li>
<img src="@item" alt="images" width="100" height="100" />
<a id="@item" href="#" onclick="deleteImage('@item');">Delete</a>
</li>
}
</ul>
<script>
function deleteImage(item)
{
var url = "/Files/DeleteImage";
$.post(url, {Name: item}, function (data) {
window.location.href = "/Files/Upload";
alert(data);
})
}
</script>
}
else
{
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}
Заранее извиняюсь, если это простая ошибка. Я новичок в ASP.NET, C# и Azure.
src
тегаimg
? Настроен ли ваш контейнер для общего доступа для чтения? - person Ivan Gritsenko   schedule 29.03.2016