【问题标题】:Uploading file from iOS to MVC controller将文件从 iOS 上传到 MVC 控制器
【发布时间】:2016-09-23 07:46:50
【问题描述】:

我的MVC controller 上有一个非常简单的文件上传方法,当从我的电脑上的浏览器上传图像时效果很好。

上传代码:

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

但是,如果我尝试从我的iPhone 上传图片,则会收到错误消息

路由表中没有路由与提供的值匹配

我尝试从方法中删除参数,而是从 Request 对象中访问数据:

修改后的代码:

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

这会导致同样的错误。

我无法确定 iPhone 正在向服务器发送什么,因为我的 iPhone 上没有任何类型的开发工具。

【问题讨论】:

  • 能不能不请开发iPhone代码的人告诉你?我过去将文件从 iOS 上传到 .Net 所做的是将图像作为 Bas64 字符串发送,但在 .Net 端将其定义为字节数组
  • 您好 Flexicoder。抱歉,我应该说图片是从 iOS Safari 浏览器上传的。

标签: ios asp.net-mvc model-view-controller


【解决方案1】:

我将要发送的文件命名为文件并通过以下代码获取。

[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);
            }
        }

【讨论】:

  • 嗨 Zain,我的问题不一定是方法的实现。就是因为路由问题,我无法获取触发方法。
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 2015-06-08
  • 1970-01-01
  • 2013-07-03
相关资源
最近更新 更多