How to receive MultipartFormData on ASP.NET C#

 ̄綄美尐妖づ 提交于 2020-01-25 08:24:07

问题


I'm working with an iOS guy. He wants to upload images through WebAPI ASP.NET. I've to make a call that can receive those images.
He said he is using AFNetworking to send data through AFMultipartFormData. My question is that how can I receive this at my end? Should I take the data in JSON format? Or what measures needs to be done for this purpose? I want to know the whole process as this is my first time working with MultipartFormData.

UPDATE
Based on the answer I used this:

[HttpPut]
        public IHttpActionResult GetPatientFilesAction(int id, Model.Patients.PatientFiles patientFile)
        {
            Model.Patients.PatientFiles pFile=new Model.Patients.PatientFiles();
            try
            {
                HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0];

                var fileForm = HttpContext.Current.Request.Form;
                var fileKey = HttpContext.Current.Request.Form.Keys[0];
                string[] jsonformat = fileForm.GetValues(fileKey);
                 pFile = Newtonsoft.Json.JsonConvert.DeserializeObject<Model.Patients.PatientFiles>(jsonformat[0]);
            }
            catch (Exception ex)
            {

                pFile.ErrorMessage = ex.ToString();
            }
            return Ok(pFile);
        }

But the iOS guy got:

Request failed: unsupported media type (415)


回答1:


Inside the web API controller you can access the image file using the code below :-

HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0];

If you have more than one files posted, replace Files[0] with respective count 1 or 2 etc.

And then you can access the JSON using the code :

var fileForm = HttpContext.Current.Request.Form;
var fileKey = HttpContext.Current.Request.Form.Keys[0];
string[] jsonformat = fileForm.GetValues(fileKey);
var yourModel = JsonConvert.DeserializeObject<YourClassType>(jsonformat[0]);

If you have more than one json strings posted, replace jsonformat[0] with respective count 1 or 2 etc.



来源:https://stackoverflow.com/questions/40378015/how-to-receive-multipartformdata-on-asp-net-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!