.net core 上传图片用 base64 还是文件流
时间: 2023-08-01 18:11:36 浏览: 141
在 .NET Core 中,上传图片时可以使用 Base64 编码或文件流两种方式。具体使用哪种方式,取决于你的应用场景和需求。
使用 Base64 编码上传图片的优点是可以直接将图片数据编码成字符串格式,方便网络传输和存储。缺点是因为要将图片数据编码成字符串,所以会占用更多的内存和网络带宽,对性能和响应速度有一定的影响。而使用文件流上传图片则可以避免这个问题,因为它直接将图片数据写入到文件流中,不需要进行编码和解码操作,能够更快地完成上传操作。
以下是使用 Base64 编码上传图片的代码示例:
```
[HttpPost("upload-base64")]
public IActionResult UploadImageBase64([FromBody] UploadImageRequest request)
{
var base64String = request.Base64String;
var imageData = Convert.FromBase64String(base64String);
// 将图片数据保存到文件中
var fileName = Path.Combine(_env.ContentRootPath, "uploads", request.FileName);
System.IO.File.WriteAllBytes(fileName, imageData);
return Ok();
}
```
以下是使用文件流上传图片的代码示例:
```
[HttpPost("upload-stream")]
public async Task<IActionResult> UploadImageStream(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("Invalid file");
}
// 将图片数据保存到文件中
var fileName = Path.Combine(_env.ContentRootPath, "uploads", file.FileName);
using (var stream = new FileStream(fileName, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok();
}
```
需要注意的是,无论是使用 Base64 编码还是文件流上传图片,都需要注意图片的大小和格式,避免上传过大或不支持的图片文件,影响应用的性能和可用性。
阅读全文