我试图将照片上传到Blob存储区,但每次尝试上传时,都会给我一个错误。
它不会让我将图像上传到blob存储。
我想要它做的是上传文件,然后将其重定向到新名称。
public async Task<IActionResult> UploadFileToNewsAsync(IFormFile files, AdminViewModel model)
var name = UrlFriendlySEO.Url(model.NameValue);//make this name SEO friendly here.
var filename = name + png;
CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(Accountname,KeyValue), true);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(ContainerValue);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
using (var f = System.IO.File.OpenRead(files.FileName))
{
await blockBlob.UploadFromStreamAsync(f);
}
每次我尝试使用 postman 时,都会给我这个错误。
using (var f = System.IO.File.OpenRead(files.FileName))
我的观点:
<div class="form-group">
<div class="col-xs-12">
@Html.LabelFor(u => u.File)
<input id="file" name="file" type="file" />
</div>
</div>
EIDT完成:
//ERROR FROM HERE
CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(Accountname, KeyValue), true);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(ContainerValue);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(name);
await blockBlob.UploadFromStreamAsync(model.FileToUpload.OpenReadStream());
答案 0 :(得分:0)
每次我和邮递员一起尝试,都会给我这个错误。
萨鲁曼问道,我不清楚你犯了什么错误。
我在我的asp.net核心测试它并且运行良好。我想你可能无法获得你上传的文件。
请将输入名称更改为文件,如下所示:
<input id="file" name="files" type="file" />
您可以参考以下详细代码:
在控制器中:
public async Task<IActionResult> UploadFileToNewsAsync(IFormFile files, AdminViewModel model)
{
var name = UrlFriendlySEO.Url(model.NameValue);//make this name SEO friendly here.
var filename = name + png;
CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(Accountname, KeyValue), true);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(ContainerValue);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
using (var f = System.IO.File.OpenRead(files.FileName))
{
await blockBlob.UploadFromStreamAsync(f);
}
return View();
}
在视图中:
@using (Html.BeginForm("UploadFileToNewsAsync", "Home", FormMethod.Post,new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<div class="col-xs-12">
@Html.LabelFor(u => u.File)
<input id="file" name="files" type="file" />
</div>
<input type="submit" />
</div>
}