Если это консольный проект, работающий в Azure, например, веб-задания, я не думаю, что вы можете загрузить файл из локальной системы в хранилище Azure.Поскольку он работает в Azure и не знает локальный путь.
Если это основной веб-проект .net, такой как проект mvc, вы можете использовать IFormFile
, что позволяет пользователям выбирать файл из локального.
Пример кода, подобный приведенному ниже:
В файле controller.cs (здесь я создаю ImagesController.cs):
public class ImagesController : Controller
{
[HttpGet]
public IActionResult Index()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Index(IFormFile file)
{
if (file == null || file.Length == 0) return Content("file not selected");
var filename = Path.GetFileName(file.FileName);
CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials("xx", "xxxx"), true);
CloudBlobClient client = storageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = client.GetContainerReference("container_name");
await blobContainer.CreateIfNotExistsAsync();
var blockblob = blobContainer.GetBlockBlobReference(filename);
using (var stream = file.OpenReadStream())
{
await blockblob.UploadFromStreamAsync(stream);
}
return View();
}
}
Затем в представлении, например Index.cshtml
:
@{
ViewData["Title"] = "Index";
}
<html>
<head>
<title>upload files</title>
</head>
<body>
<form asp-controller="Images" asp-action="Index" method="post"
enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">Upload File</button>
</form>
</body>
</html>