c# - 文件上传到 C# .Net Core API
问题描述
我正在尝试将文件发送到我编写的现有 API,但是当 API 接收到文件时,它为空。API 在“request.GetRequestStream()”处获取文件。该 API 与 Postman 一起使用,所以我很确定问题出在我的代码上。这里是
public static void SendFile(Stream DATA)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "POST";
request.ContentType = "multipart/form-data";
int bytesRead = 0;
byte[] requestByte = new byte[DATA.Length];
request.ContentLength = requestByte.Length;
using (Stream requestStream = request.GetRequestStream())
{
while ((bytesRead = DATA.Read(requestByte, 0, requestByte.Length)) != 0)
{
requestStream.Write(requestByte, 0, bytesRead);
requestStream.Close();
}
}
WebResponse webResponse = request.GetResponse();
Stream webStream = webResponse.GetResponseStream();
StreamReader responseReader = new StreamReader(webStream);
string response = responseReader.ReadToEnd();
Console.Out.WriteLine(response);
responseReader.Close();
}
catch (Exception e)
{
Console.Out.WriteLine("-----------------");
Console.Out.WriteLine(e.Message);
}
}
API如下
[HttpPost("upload")]
public IActionResult UploadFile([FromForm(Name = "files")] List<IFormFile> files)
{
string subDirectory = "reports";
try
{
if (files != null)
{
_fileService.SaveFile(files, subDirectory);
_fileService.ProcessFiles(files);
return Ok(new { files.Count, Size = FileService.SizeConverter(files.Sum(f => f.Length)) });
}
else
return Ok("Upload failed");
}
catch (Exception exception)
{
return BadRequest($"Error: {exception.Message}");
}
}
其中 URL 是 API 的位置(它们现在都在同一台 PC 上运行)。
我究竟做错了什么?