【问题标题】:Can an ASP MVC controller action receive a byte[]?ASP MVC 控制器动作可以接收字节[]吗?
【发布时间】:2011-12-30 00:12:34
【问题描述】:

我有一个 ASP MVC 应用程序,我也将它(作为要求)用作移动应用程序的 Web 服务。

我有一个控制器来处理返回 json 的移动应用程序使用的大部分操作,效果很好。

但我不确定如何将图片上传为 byte[]。

控制器动作可以接收字节[] 吗?

我正在考虑将 byte[] 编码为字符串,然后在控制器操作中将其解码。

但我尝试了来回转换,但新的字节[]总是与原始字节[]不同

byte[] originalData = ... // picture as byte[]
string dataString = System.Text.Encoding.Unicode.GetString(data);
byte[] newData = System.Text.Encoding.Unicode.GetBytes(dataString); 

有没有更好的方法或者我应该直接接收简单的字节[]??

【问题讨论】:

  • 请注意,您不应该使用Encoding.Unicode 将二进制数据编码/解码为字符串,它可能会添加 BOM。我有同样的问题。您应该按如下方式创建自己的编码:new UTF8Encoding(false) ... 这将提供无损二进制编码和解码。

标签: arrays asp.net-mvc parameter-passing


【解决方案1】:

Scott Hanselman 发表了一篇博文,其中包含帮助您以一种很好的方式开始在 MVC 中上传文件的所有内容:http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    相关资源
    最近更新 更多