c# - 将 IFormFile 转换为 Stream 将内容类型设置为 application/octet-stream
问题描述
我想将图像文件上传到 Azure Blob 容器。我正在使用.net core webapi post方法上传图片。上传成功但内容类型无效,将原始image/jpeg
类型转换为application/octet-stream
.
[HttpPost]
public async Task<string> Post(IFormFile files)
{
BlobClient blobClient = _containerClient.GetBlobClient(files.FileName);
await blobClient.UploadAsync(files.OpenReadStream());
}
谁能帮助我如何上传保留原始内容类型的图像。
提前致谢。
解决方案
如果要在上传文件到 Azure blob 时设置 content-type,请参考以下代码
// 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";
}
推荐阅读
- azure-iot-hub - 使用 IoT DevKit 和 Azure IoT Hub 向设备发送云消息 - 设备代码
- javascript - 在 HTML 页面上显示多个图表?
- html - 使图像在单击时打开模式?
- arrays - 多个数组的排列/组合/笛卡尔积的快速生成
- mysql - 带有嵌套子查询的查询平均值
- c# - 使用 C# 的有效友好监视器名称
- java - JWT 代币发行
- oracle - 关于 `jersey.config.server.provider.scanning.recursive` 参数,我应该考虑什么?
- c# - 调试 Bricscad 插件 - 所选调试引擎不支持任何代码
- excel - 将 Outlook 中的 zip 附件保存在内部驱动器(文件夹)中