Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么file=null? [路由(“api/文件”)] [产生(“应用程序/json”)] [使用(“应用程序/json”、“应用程序/json修补程序+json”、“多部分/表单数据”)] [ApiController] 公共类文件控制器:ControllerBase { 公共文件控制器() { } [HttpPost] 公共异步任务PostProfilePicture([FromQuery]格式文件) { var stream=file.OpenReadStream(); var name=file.FileName; 返回null; } }_C#_Asp.net Core_Asp.net Core Webapi - Fatal编程技术网

C# 为什么file=null? [路由(“api/文件”)] [产生(“应用程序/json”)] [使用(“应用程序/json”、“应用程序/json修补程序+json”、“多部分/表单数据”)] [ApiController] 公共类文件控制器:ControllerBase { 公共文件控制器() { } [HttpPost] 公共异步任务PostProfilePicture([FromQuery]格式文件) { var stream=file.OpenReadStream(); var name=file.FileName; 返回null; } }

C# 为什么file=null? [路由(“api/文件”)] [产生(“应用程序/json”)] [使用(“应用程序/json”、“应用程序/json修补程序+json”、“多部分/表单数据”)] [ApiController] 公共类文件控制器:ControllerBase { 公共文件控制器() { } [HttpPost] 公共异步任务PostProfilePicture([FromQuery]格式文件) { var stream=file.OpenReadStream(); var name=file.FileName; 返回null; } },c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,邮递员 调试 在结束文件中=null 如何解决此问题?您需要更改属性,该属性选择模型绑定器将从中解析IFormFile实例的源。将[FromQuery]改为[FromForm]: [Route("api/file")] [Produces("application/json")] [Consumes("application/json", "application/json-patch+json", "multipart/form-data")] [ApiController] public

邮递员

调试

在结束文件中=null
如何解决此问题?

您需要更改属性,该属性选择模型绑定器将从中解析
IFormFile
实例的源。将
[FromQuery]
改为
[FromForm]

[Route("api/file")]
[Produces("application/json")]
[Consumes("application/json", "application/json-patch+json", "multipart/form-data")]
[ApiController]
public class FileController : ControllerBase
{
    public FileController()
    {
    }

    [HttpPost]
    public async Task<IActionResult> PostProfilePicture([FromQuery]IFormFile file)
    {
        var stream = file.OpenReadStream();
        var name = file.FileName;
        return null;
    }
}
public异步任务PostProfilePicture([FromForm]ifformfile)

您需要更改选择源的属性,模型绑定器将从中解析
IFormFile
实例。将
[FromQuery]
改为
[FromForm]

[Route("api/file")]
[Produces("application/json")]
[Consumes("application/json", "application/json-patch+json", "multipart/form-data")]
[ApiController]
public class FileController : ControllerBase
{
    public FileController()
    {
    }

    [HttpPost]
    public async Task<IActionResult> PostProfilePicture([FromQuery]IFormFile file)
    {
        var stream = file.OpenReadStream();
        var name = file.FileName;
        return null;
    }
}
public异步任务PostProfilePicture([FromForm]ifformfile)

您将以
x-www-form-urlencoded
的形式发送。您必须将其作为
多部分/表单数据发送
。文件上载只能在此模式下进行,因此在所有其他模式下,
ifformfile
也将为
null

x-www-form-urlencoded
是默认模式,仅用于在请求正文中发送密钥/值编码对


另外,
[FromQuery]
也不是必需的,因为您不能通过查询参数上传文件

您将以
x-www-form-urlencoded
的形式发送。您必须将其作为
多部分/表单数据发送
。文件上载只能在此模式下进行,因此在所有其他模式下,
ifformfile
也将为
null

x-www-form-urlencoded
是默认模式,仅用于在请求正文中发送密钥/值编码对


另外,
[FromQuery]
也不是必需的,因为您不能通过查询参数上传文件

我猜您从
ifformfile
中得到的是null,因为您在Controller类上指定了此操作所需的属性,而不是在Controller方法上。按以下方式更新代码将解决此问题

public async Task<IActionResult> PostProfilePicture([FromForm]IFormFile file)
[路由(“api/文件”)]
[ApiController]
公共类文件控制器:ControllerBase
{
公共文件控制器()
{
}
[HttpPost]
[产生(“应用程序/json”)]
[使用(“多部分/表单数据”)]
公共异步任务PostProfilePicture([FromForm]格式文件)
{
var stream=file.OpenReadStream();
var name=file.FileName;
返回null;
}
}

希望这能解决您的问题。

我猜您从
ifformfile
中得到的是null,因为您在控制器类上指定了此操作所需的属性,而不是在控制器方法上。按以下方式更新代码将解决此问题

public async Task<IActionResult> PostProfilePicture([FromForm]IFormFile file)
[路由(“api/文件”)]
[ApiController]
公共类文件控制器:ControllerBase
{
公共文件控制器()
{
}
[HttpPost]
[产生(“应用程序/json”)]
[使用(“多部分/表单数据”)]
公共异步任务PostProfilePicture([FromForm]格式文件)
{
var stream=file.OpenReadStream();
var name=file.FileName;
返回null;
}
}

希望这能解决您的问题。

删除
[FromQuery]
部分,因为它不是查询的一部分(查询是url中问号
?key=value&key2=value2
后面的部分)。删除
[FromQuery]
部分,因为它不是查询的一部分(查询是url中问号
?key=value&key2=value2
)后面的一部分,也可以是file=null。如果属性->[FromForm]@Ааааааааааааааааааааа107→text/html;charset=utf-8。如何获取多部分/表单数据?另文件=null。如果属性->[FromForm]@Аццццццццццццццццццццц1094→text/html;charset=utf-8。如何获取多部分/表单数据?我遇到了类似的问题,我在此处发布了我的答案:我遇到了类似的问题,我在此处发布了我的答案: