Исключительная ситуация броска UploadFromFileAsync (строка пути) не может найти ваше местоположение - PullRequest
0 голосов
/ 03 мая 2019

Я использую UploadFromFileAsync (@ "E: \ test.html");когда путь заканчивается, он выбрасывает исключительную ситуацию, но не находит местоположение. Файл существует на моем пути. Может ли кто-нибудь помочь мне

fileName = @"E:\\test.html"; 
cloudFile = fileDirectory.GetFileReference(fileName); // Upload a file to the share. 
await cloudFile.UploadFromFileAsync(fileName);
cloudFile.Metadata.Add("FileName", cloudFile.Name); 
cloudFile.Metadata.Add("Status", "1");
await cloudFile.SetMetadataAsync(); 

1 Ответ

0 голосов
/ 06 мая 2019

Если это консольный проект, работающий в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...