загрузите мультимедиа в хранилище BLOB-объектов Azure, используя веб-интерфейс asp.net 2 - PullRequest
0 голосов
/ 18 мая 2018

Я разрабатываю остальные веб-интерфейсы API, которые загружают изображения в мой BLOB-объект Azure, я воспользовался одним из онлайновых руководств и получил этот код

 public class DocumentsController : ApiController
{
    private const string CONTAINER = "documents";

    // POST api/<controller>
    public async Task<HttpResponseMessage> Post()
    {
        var context = new StorageContext();

        // Check if the request contains multipart/form-data.
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        // Get and create the container
        var blobContainer = context.BlobClient.GetContainerReference(CONTAINER);
        blobContainer.CreateIfNotExists();

        string root = HttpContext.Current.Server.MapPath("~/App_Data");
        var provider = new MultipartFormDataStreamProvider(root);

        try
        {
            // Read the form data and return an async task.
            await Request.Content.ReadAsMultipartAsync(provider);

            // This illustrates how to get the file names for uploaded files.
            foreach (var fileData in provider.FileData)
            {
                var filename = fileData.LocalFileName;
                var blob = blobContainer.GetBlockBlobReference(filename);

                using (var filestream = File.OpenRead(fileData.LocalFileName))
                {
                    blob.UploadFromStream(filestream);
                }
                File.Delete(fileData.LocalFileName);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        }
        catch (System.Exception e)
        {
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }

, он загружает изображение в мой контейнер BLOB-объектов учетной записи, но когдаЯ открываю диспетчер хранилища Azure и получаю доступ к контейнеру. Я получаю неправильный формат, как показано на рисунке ниже

введите описание изображения здесь

Вы можете увидеть тип содержимого?Я не могу открыть этот путь в проводнике, любая помощь будет признательна

1 Ответ

0 голосов
/ 18 мая 2018

Есть ли в вашем имени файла из кода ниже расширение, включенное при отладке (например, .jpg, .png)?Например, «image.jpg»

var blob = blobContainer.GetBlockBlobReference(filename);

Также «fileData.LocalFileName» из приведенного ниже кода должно иметь расширение файла

using (var filestream = File.OpenRead(fileData.LocalFileName))

У него нет расширения, и по этой причине выесть такая проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...