asp.net-core-webapi – 在asp.net核心web api中上传多部分/表单
发布时间:2020-12-16 04:32:31 所属栏目:asp.Net 来源:网络整理
导读:如何在asp.net核心web api中上传多部分表单数据文件?是否可以在单个POST中同时POST JSON和图像? 解决方法 更新 – .net核心2.0 使用.net核心,您可以利用新的IFormFile接口在同一帖子中上传图像和属性.例如: [HttpPost("content/upload-image")]public asy
如何在asp.net核心web api中上传多部分表单数据文件?是否可以在单个POST中同时POST
JSON和图像?
解决方法
更新 – .net核心2.0
使用.net核心,您可以利用新的IFormFile接口在同一帖子中上传图像和属性.例如: [HttpPost("content/upload-image")] public async Task<IActionResult> UploadImage(MyFile upload) MyFile类看起来像: public class MyFile { public string userId { get; set; } public IFormFile File { get; set; } // Other properties } 您可以按如下方式访问属性和文件: var file = upload.File // This is the IFormFile file var param = upload.userId // param 要将文件保留/保存到磁盘,您可以执行以下操作: using (var stream = new FileStream(path,FileMode.Create)) { await file.File.CopyToAsync(stream); } .NET Framework 是的.根据您正在使用的客户端框架,您可以为内容类型 – 多部件配置Web API,然后执行以下操作: [HttpPost] [Route("content/upload-image")] public async Task<HttpResponseMessage> Post() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } // enter code here } 定义并设置保存图像的目录. var root = HttpContext.Current.Server.MapPath("~/Content/Images/"); if (!Directory.Exists(root)) { Directory.CreateDirectory(root); } 设置StreamProvider并尝试获取模型数据,这是您提到的JSON. var streamProvider = new MultipartFormDataStreamProvider(root); var result = await Request.Content.ReadAsMultipartAsync(streamProvider); if (result.FormData["model"] == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } 现在访问请求中的文件. try { // Deserialize model data to your own DTO var model = result.FormData["model"]; var formDto = JsonConvert .DeserializeObject<MyDto>(model,new IsoDateTimeConverter()); var files = result.FileData.ToList(); if (files != null) { foreach (var file in files) { // Do anything with the file(s) } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – WebAPI控制器中的MVC路由
- asp.net-mvc – MVC索引页面和过滤器
- asp.net – 如何在使用服务器端分隔符时转义字符
- asp.net-core – ASP.NET vNext – 本地化(.resx)
- asp.net-mvc-3 – 使用Ajax.ActionLink发布表单字段
- asp.net-mvc-4 – 访问路径“/ etc/mono/registry”被拒绝
- asp.net-mvc – ASP.NET MVC 3 – 这个布尔值如何在控制器中
- asp.net-mvc – 来自HttpRequestMessage内容的文件名
- asp.net-mvc – ASP.NET MVC可以生成具有小写名称和id属性的
- 浅谈ASP.NET配置文件加密
推荐文章
站长推荐
- asp.net cookie,身份验证和会话超时
- asp.net – Web表单和Web表单与主页之间的区别?
- asp.net – 什么是Silverlight,以及哪些类型的开
- asp.net – 如何检测用户操作系统
- asp.net-mvc-4 – ASP.NET Web API的自定义MVC A
- 编写T4模板进行代码生成无法避免的两个话题:
- asp.net-mvc – 视图是否应该依赖于它的控制器?
- asp.net-mvc – Sammy.js和Knockout.js =>模板没
- asp.net – NHibernate继承类但不需要持久化
- asp.net – 服务应用程序池“X”的进程与Windows
热点阅读