2016-09-23 97 views
0

我的MVC controller上有一个非常简单的文件上传方法,在我的PC上从浏览器上传图像时效果很好。将文件从iOS上传到MVC控制器

上传代码:

[HttpPost] 
public ActionResult FileUpload(HttpPostedFileBase file, string encodedId) 

但是,如果我尝试从上传图片我iPhone我得到错误的

在路由表中的路由提供的值相匹配

我试着从方法中删除参数,而不是访问数据请求对象:

修改代码:

[HttpPost] 
public ActionResult FileUpload() 
    { 
    var file = HttpContext.Request.Files[0]; 
    string encodedId = HttpContext.Request.Form["EncodedId"]; 

这导致相同的错误。

我无法确定iPhone发送到服务器的内容,因为我的iPhone上没有任何开发工具。

+0

难道你不会要求开发iPhone代码的人告诉你吗?我过去做过的将文件从iOS上传到.Net的过程是将图像作为Bas64字符串发送,但将其定义为.Net侧的字节数组。 – Flexicoder

+0

Hi Flexicoder。对不起,我应该说图像是从iOS Safari浏览器上传的。 – Steve

回答

0

我将我的文件命名为File,并通过以下代码获取。

[HttpPost] 
     [Route("UploadAttachment")] 
     public IHttpActionResult UploadAttachment() 
     { 
      try 
      { 
       HttpPostedFile File = HttpContext.Current.Request.Files.Count > 0 ? 
        HttpContext.Current.Request.Files.Get("File") : null; 

       if (File != null) 
       { 
        Uploader uploader = new Uploader(); 
        var Result = uploader.uploadToServer(File); 
        return Ok(Result); 
       } 
       else 
       { 
        return BadRequest("File is Required"); 
       } 
      } 
      catch (Exception ex) 
      { 
       return InternalServerError(ex); 
      } 
     } 
+0

嗨Zain,我的问题不一定是方法的执行。这是因为路由问题,我无法触发该方法。 – Steve

+0

你可以显示代码吗? –

相关问题