以下是一个从HttpContext.Request对象中获取文件字节数组的示例代码:
using System.IO;
using Microsoft.AspNetCore.Http;
public byte[] GetFileBytesFromRequest(HttpRequest request)
{
// 检查请求是否包含文件
if (request.Form.Files.Count == 0)
{
throw new Exception("请求中没有文件.");
}
// 获取第一个文件
var file = request.Form.Files[0];
// 创建一个内存流
using (var memoryStream = new MemoryStream())
{
// 将文件内容复制到内存流中
file.CopyTo(memoryStream);
// 返回字节数组
return memoryStream.ToArray();
}
}
使用示例:
[HttpPost]
public IActionResult UploadFile(IFormFile file)
{
// 检查文件是否存在
if (file == null || file.Length == 0)
{
ViewBag.Message = "请选择文件.";
return View();
}
// 创建一个内存流
using (var memoryStream = new MemoryStream())
{
// 将文件内容复制到内存流中
file.CopyTo(memoryStream);
// 获取字节数组
byte[] fileBytes = memoryStream.ToArray();
// 处理文件字节数组...
// 返回视图或其他操作
return View();
}
}
请注意,以上代码示例基于ASP.NET Core,并假定您已经安装了相应的依赖项。如果您在传统的ASP.NET Web Forms或MVC应用程序中使用ASP.NET,请将示例代码进行适当的修改。