在Net Core Controller中接收IFileForm并转发给另一个(独立)API
我有一个Vue.JS应用程序,在其中我将图像上载到NetCore控制器 我正在以下控制器中接收IFileForm:在Net Core Controller中接收IFileForm并转发给另一个(独立)API,api,asp.net-core,.net-core,upload,asp.net-core-mvc,Api,Asp.net Core,.net Core,Upload,Asp.net Core Mvc,我有一个Vue.JS应用程序,在其中我将图像上载到NetCore控制器 我正在以下控制器中接收IFileForm: [HttpPost("UpdateContactPhoto")] public async Task<string> UpdateContactPhoto(IFormFile file){ //Forward the original IFileForm to another NetCore API. } [HttpPost(“UpdateContactPhot
[HttpPost("UpdateContactPhoto")]
public async Task<string> UpdateContactPhoto(IFormFile file){ //Forward the original IFileForm to another NetCore API. }
[HttpPost(“UpdateContactPhoto”)]
公共异步任务UpdateContactPhoto(IFormFile文件){//将原始IFileForm转发到另一个NetCore API。}
在这一点上,一切都正常工作。如果形式完美
我的问题是,我需要将此IFileForm转发到另一个API(独立于此),该API的输入是带有HttpClient PutAsync的IFileForm,但不起作用
有人能帮我吗
感谢您的帮助。将“此处的目标url”替换为您的目标url:
HttpClient-HttpClient=new-HttpClient();
var streamcontent=newstreamcontent(file.OpenReadStream());
var response=wait httpClient.PutAsync(“此处的目标url”,streamcontent);
参考:
用您的目标url替换“此处的目标url”:
HttpClient-HttpClient=new-HttpClient();
var streamcontent=newstreamcontent(file.OpenReadStream());
var response=wait httpClient.PutAsync(“此处的目标url”,streamcontent);
参考:
您可以使用此示例。请注意,参数名称与添加到
表单数据中的项相同:
使用(var-client=new-HttpClient())
{
client.BaseAddress=新Uri(“http://localhost:57985");
字节[]数据;
使用(var br=new二进制读取器(file.OpenReadStream())
{
data=br.ReadBytes((int)file.OpenReadStream().Length);
}
ByteArrayContent字节=新的ByteArrayContent(数据);
MultipartFormDataContent multiContent=新的MultipartFormDataContent();
添加(字节,“文件”,文件名);
var result=client.PutAsync(“api/v1/FileManager”,多内容);
if(result.StatusCode==HttpStatusCode.OK)
{
//做一些事情
}
}
您还可以使用此代码从HttpContext
获取文件:
ifformfile file=HttpContext.Request.Form.Files[0];
您可以使用此示例。请注意,参数名称与添加到表单数据中的项相同:
使用(var-client=new-HttpClient())
{
client.BaseAddress=新Uri(“http://localhost:57985");
字节[]数据;
使用(var br=new二进制读取器(file.OpenReadStream())
{
data=br.ReadBytes((int)file.OpenReadStream().Length);
}
ByteArrayContent字节=新的ByteArrayContent(数据);
MultipartFormDataContent multiContent=新的MultipartFormDataContent();
添加(字节,“文件”,文件名);
var result=client.PutAsync(“api/v1/FileManager”,多内容);
if(result.StatusCode==HttpStatusCode.OK)
{
//做一些事情
}
}
您还可以使用此代码从HttpContext
获取文件:
ifformfile file=HttpContext.Request.Form.Files[0];
您需要将底层流发送到传出请求主体。表单文件本身只是接收文件上载时的包装器。您需要将底层流发送到传出请求主体。表单文件本身只是接收文件上载时的一个包装器。OpenReadStream
和PutAsync
returnIDisposable
s,因此应使用包装。这两个OpenReadStream
和PutAsync
返回IDisposable
s,因此应进行包装使用和。