C# 将文件转换为流集内容类型转换为应用程序/八位字节流

C# 将文件转换为流集内容类型转换为应用程序/八位字节流,c#,azure,asp.net-core,azure-blob-storage,C#,Azure,Asp.net Core,Azure Blob Storage,我想将图像文件上载到Azure Blob容器。我正在使用.net core webapi post方法上载图像。上载成功,但内容类型无效,这将原始的图像/jpeg类型转换为应用程序/octet流 [HttpPost] public async Task<string> Post(IFormFile files) { BlobClient blobClient = _containerClient.GetBlobClient(files.FileName); await

我想将图像文件上载到Azure Blob容器。我正在使用.net core webapi post方法上载图像。上载成功,但内容类型无效,这将原始的
图像/jpeg
类型转换为
应用程序/octet流

[HttpPost]
public async Task<string> Post(IFormFile files)
{
    BlobClient blobClient = _containerClient.GetBlobClient(files.FileName);
    await blobClient.UploadAsync(files.OpenReadStream());
}
[HttpPost]
公共异步任务Post(文件)
{
BlobClient BlobClient=\u containerClient.GetBlobClient(files.FileName);
等待blobClient.UploadAsync(files.OpenReadStream());
}
谁能帮助我如何上传图像保持原来的内容类型


提前感谢。

如果您想在将文件上载到Azure blob时设置内容类型,请参阅以下代码

// I use the sdk Azure.Storage.Blobs
[HttpPost]
public async Task<string> Post(IFormFile file)
{
    var connectionString = "the account connection string";
            BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
            BlobContainerClient containerClient =blobServiceClient.GetBlobContainerClient("test");
            await containerClient.CreateIfNotExistsAsync();
            BlobClient blobClient = containerClient.GetBlobClient(file.FileName);
            BlobHttpHeaders httpHeaders = new BlobHttpHeaders() { 
               ContentType=file.ContentType 
            };

            await blobClient.UploadAsync(file.OpenReadStream(), httpHeaders);

            return "OK";
}
//我使用sdk Azure.Storage.Blobs
[HttpPost]
公共异步任务Post(格式化文件)
{
var connectionString=“帐户连接字符串”;
BlobServiceClient BlobServiceClient=新BlobServiceClient(connectionString);
BlobContainerClient containerClient=blobServiceClient.GetBlobContainerClient(“测试”);
等待containerClient.CreateIfNotExistsAsync();
BlobClient BlobClient=containerClient.GetBlobClient(file.FileName);
BlobHttpHeaders httpHeaders=新BlobHttpHeaders(){
ContentType=file.ContentType
};
等待blobClient.UploadAsync(file.OpenReadStream(),httpHeaders);
返回“OK”;
}
测试(邮递员测试)

如果要在将文件上载到Azure blob时设置内容类型,请参阅以下代码

// I use the sdk Azure.Storage.Blobs
[HttpPost]
public async Task<string> Post(IFormFile file)
{
    var connectionString = "the account connection string";
            BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
            BlobContainerClient containerClient =blobServiceClient.GetBlobContainerClient("test");
            await containerClient.CreateIfNotExistsAsync();
            BlobClient blobClient = containerClient.GetBlobClient(file.FileName);
            BlobHttpHeaders httpHeaders = new BlobHttpHeaders() { 
               ContentType=file.ContentType 
            };

            await blobClient.UploadAsync(file.OpenReadStream(), httpHeaders);

            return "OK";
}
//我使用sdk Azure.Storage.Blobs
[HttpPost]
公共异步任务Post(格式化文件)
{
var connectionString=“帐户连接字符串”;
BlobServiceClient BlobServiceClient=新BlobServiceClient(connectionString);
BlobContainerClient containerClient=blobServiceClient.GetBlobContainerClient(“测试”);
等待containerClient.CreateIfNotExistsAsync();
BlobClient BlobClient=containerClient.GetBlobClient(file.FileName);
BlobHttpHeaders httpHeaders=新BlobHttpHeaders(){
ContentType=file.ContentType
};
等待blobClient.UploadAsync(file.OpenReadStream(),httpHeaders);
返回“OK”;
}
测试(邮递员测试)

我记得不久前看到一个问题,其中谈到使用asp.net core中的文件名(和扩展名)获取文件的内容类型(抱歉,现在找不到)。请看那个。完成后,请查看以下内容:。实际找到了mime类型的单独链接:。HTH.@GauravMantri我可以使用IFormFile获得原始mime类型。但这里的问题是,当我将其上载到azure blob存储时,它显示为
应用程序/octet流
。在这种情况下,请查看此链接:。我记得不久前看到一个问题,其中谈到使用asp.net core中的文件名(和扩展名)获取文件的内容类型(抱歉,现在找不到它)。请看那个。完成后,请查看以下内容:。实际找到了mime类型的单独链接:。HTH.@GauravMantri我可以使用IFormFile获得原始mime类型。但这里的问题是,当我将其上传到azure blob存储时,它显示为
应用程序/octet流
,在这种情况下,请查看此链接:。