欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Net Core2.2 WebApi上传文件

程序员文章站 2023-02-07 13:33:57
基于.net core2.2的webapi程序,接收客户端上传的文件.按照以下写法,file的值永远是null 一.有两种方法解决这个问题: 1.属性绑定.在[FromForm]里添加Name属性如:[FromForm(name = "file")],客户端调用时需要保持一致 还可以和其他参数一起传 ......

基于.net core2.2的webapi程序,接收客户端上传的文件.按照以下写法,file的值永远是null

[httppost]
public void post([fromform] iformfile file)
{

}

一.有两种方法解决这个问题:

1.属性绑定.在[fromform]里添加name属性如:[fromform(name = "file")],客户端调用时需要保持一致

// post api/values
[httppost] public void post([fromform(name = "file")] iformfile file) { }

还可以和其他参数一起传过来

 // post api/<controller>
        [httppost]
        public async task<iactionresult> uploadfile(string filename,[fromform(name ="file")]iformfile formfile)

 

postman测试,注意参数名要保持一致,否则收到的值为null

.Net Core2.2 WebApi上传文件

 

2.通过request.form.files获取文件,客户端可以任意指定name

 // post api/values
[httppost] public void post() { iformfile formfile= request.form.files[0]; var filepath = @"d:\uploadingfiles\" + formfile.filename; if (formfile.length > 0) { using (var stream = new filestream(filepath, filemode.create)) { formfile.copyto(stream); } } }

 二.客户端调用代码

  var request = new restrequest(method.post);
            request.addfile("file", @"d:\1.jpg");
            var restclient = new restclient("http://localhost:63270/api/values");
            irestresponse response = restclient.execute(request);