[HttpPost("ImportPeople")]
public async Task<IActionResult> ImportPeople([FromForm] string facesetid, [FromForm] string name, [FromForm] string content, [FromForm] IFormFile file)
{。。。}
這是我的服務端代碼,用的asp.net core
var stream = File.Open(i.Info.path + "/photo.jpg", FileMode.Open, FileAccess.Read);
var boundary = string.Format("----------------------------{0}", DateTime.Now.Ticks.ToString("x"));
MultipartFormDataContent c = new MultipartFormDataContent(boundary);
c.Add(new StringContent(facesetid), "facesetid");
c.Add(new StringContent(name), "name");
c.Add(new StringContent(content), "content");
c.Add(new StreamContent(stream ,(int)stream .Length), "file");
var resp = await new HttpClient().PostAsync(Host+ "/api/Peoplesets/ImportPeople",c);
這是我上傳檔案的方法代碼。
現在的問題是每次上傳服務器端其他引數都能接收到,但是就是file每次都是null。也沒有拋出什么例外。
uj5u.com熱心網友回復:
用IFormCollection 代替 IFormFile注意這個是檔案串列
uj5u.com熱心網友回復:
我看了下Request.Form里面是有file的,但是Request.Form.files里面沒有,應該是上傳代碼有問題,controller里面應該沒啥問題
uj5u.com熱心網友回復:
那你在Add后面多加一個引數c.Add(new StreamContent(stream ,(int)stream .Length), "file","photo.jpg");
試一下
uj5u.com熱心網友回復:
可以在Request.Form.files里看到file了但是引數里的file還是null,我還是用IFormCollection 試試吧
uj5u.com熱心網友回復:
IFormCollection 還是null,我只有在request里取了
uj5u.com熱心網友回復:
https://download.csdn.net/download/yenange/10850219看下這個, 可以參考下
uj5u.com熱心網友回復:
html中input的name與IFormFile file的file名一樣uj5u.com熱心網友回復:
用IFormCollection filesforeach (var filesFile in files.Files)
{
var fileName = filesFile.FileName;//檔案名
var fileExt = Path.GetExtension(fileName);//后綴
var ms = filesFile.OpenReadStream();//打開檔案流
var msBuffer = ms.ToArray();//檔案轉為位元組陣列
ms.Dispose();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/102014.html
標籤:ASP.NET
