如何将IEnumerable <httppostedfilebase>发布到MVC 4 Controller </httppostedfilebase>

时间:2014-03-04 19:18:17

标签: c# asp.net-mvc-4 visual-studio-2012 controller

简而言之,我试图将一个控制器中收到的IEnumerable<HttpPostedFileBase>个对象从视图发布到“REST”服务器上的另一个控制器。我曾尝试使用HttpWebRequestStreamWriter将对象作为序列化JSON发送,但由于文件是大图像,因此Max JSON Length会阻止这种情况。

我目前正在尝试使用“multipart / form-data”来发布数据,遵循我在http://www.techcoil.com/blog/uploading-large-http-multipart-request-with-system-net-httpwebrequest-in-c/找到的示例,但这看起来并不那么优雅(对示例的作者没有冒犯)。有没有更好的方式发布数据?

1 个答案:

答案 0 :(得分:0)

您无法通过ajax发布文件,也不应尝试将其发布为JSON。使用JSON可能看起来很优雅,但是效率要低得多,因为任何二进制数据都必须是base64编码的。

您必须作为链接到的文章执行常规HTTP帖子。

但是,如果您的所有用户都拥有支持HTML5的浏览器,则可以执行ajax上传:How can I upload files asynchronously?

如果没有,您必须使用某种Flash上​​传组件或使用IFRAME:s。