从POST或PUT REST请求处理Web API中的二进制数据

gos*_*eta 8 c# asp.net binary file-upload asp.net-web-api

我目前正在使用Web API开发REST Web服务.我遇到了处理通过POST请求传输的二进制数据(图像)的问题.

从客户端的角度来看,我已经设法使用jQuery Form Plugin发送二进制数据.但是因为我是.NET的新手(我是PHP开发人员),我在服务器上通过Web API处理这个二进制数据时遇到了困难.

为了确认jQuery Form Plugin正在正确发送图像数据,我编写了一个有效的PHP处理程序,它使用了简单的$_FILE全局变量.

现在我试图通过Web API完成相同的工作.这是我尝试过的概述.如何访问已发送的二进制数据?

模型:

namespace EDHDelivery.Models
{
    public class Oferta
    {
        public int OfertaID { get; set; }
        public string Nombre { get; set; }
        public string Imagen { get; set; }
        public int ComercioID { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器(显示部分代码):

public Oferta Add(Oferta item)
{
    /*here my item will have the POST body with form values, 
    automatically serialized by the framework and I think an image binary*/
    var n = item.Nombre; //...etc.
}
Run Code Online (Sandbox Code Playgroud)

Fil*_*p W 9

简而言之,您必须将数据发送multipart/form-data(我很确定,您已经通过您提到的插件进行了处理),然后您必须使用Web API MultipartContent提供程序之一提取数据.

有很多资源解释如何: