gpt4 book ai didi

C# 将 IFormFile 读入 byte[]

转载 作者:行者123 更新时间:2023-12-04 14:45:38 31 4
gpt4 key购买 nike

我正在尝试阅读 IFormFile从这样的 HTTP POST 请求中收到:

 public async Task<ActionResult> UploadDocument([FromForm]DataWrapper data)
{
IFormFile file = data.File;
string fileName = file.FileName;
long length = file.Length;
if (length < 0)
return BadRequest();
using FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate);
byte[] bytes = new byte[length];
fileStream.Read(bytes, 0, (int)file.Length);

...

}

但在这行执行后,出了点问题:
fileStream.Read(bytes, 0, (int)file.Length);
bytes的所有元素为零。

此外,在我的 Visual Studio 项目中创建了同名文件,我不希望发生这种情况。

最佳答案

您无法打开 IFormFile与磁盘上的文件相同。您必须使用 IFormFile.OpenReadStream()反而。 Docs here

public async Task<ActionResult> UploadDocument([FromForm]DataWrapper data)
{
IFormFile file = data.File;

long length = file.Length;
if (length < 0)
return BadRequest();

using var fileStream = file.OpenReadStream();
byte[] bytes = new byte[length];
fileStream.Read(bytes, 0, (int)file.Length);

}

原因 fileStream.Read(bytes, 0, (int)file.Length);似乎是空的是,因为它是。 IFormFile.Filename是请求提供的文件名,磁盘上不存在。

关于C# 将 IFormFile 读入 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990439/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com