asp.net core webapi 写一个可以上传图片的接口,并把图片转成base64
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
using System.IO;
using System.Threading.Tasks;
namespace YourNamespace.Controllers
{
[ApiController]
[Route("api/images")]
public class ImageController : ControllerBase
{
private readonly IWebHostEnvironment _hostingEnvironment;
public ImageController(IWebHostEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
[HttpPost("upload")]
public async Task<IActionResult> UploadImage(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("Invalid file");
}
try
{
var base64String = await ConvertToBase64Async(file);
return Ok(new { Base64String = base64String });
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, $"Internal server error: {ex.Message}");
}
}
private async Task<string> ConvertToBase64Async(IFormFile file)
{
using (var memoryStream = new MemoryStream())
{
await file.CopyToAsync(memoryStream);
var bytes = memoryStream.ToArray();
return Convert.ToBase64String(bytes);
}
}
}
}