【发布时间】:2016-06-28 08:03:14
【问题描述】:
在实现ajax POST成功实现后,通过nice post上传模型对象甚至复杂对象,
新的目标是为更复杂的场景提供一个实现。
我试图通过在没有具体和正确答案的情况下搜索谷歌的代码示例来实现有问题的任务
我们的目标是让多用途(多数据类型)数据从客户端传输到服务器(不使用表单或HttpRequestBase)以最有效的方式传递原始字节数组(我知道这是可能的)实施新协议HTTP/2 或谷歌
Protocol Buffers - Google's data interchange format
[HttpPost]
public JsonResult UploadFiles(byte[] parUploadBytearry)
{
}
最好是一个模型,其中一个属性是byte[]
[HttpPost]
public [JsonResult / ActionResult] Upload(SomeClassWithByteArray parDataModel)
{
}
ajax http Post 签名:
Log("AajaxNoPostBack preparing post-> " + targetUrl);
$.ajax({
type: 'POST',
url: targetUrl,
data: mods,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function for Success..
});
我也拼命尝试过这种解决方法
public JsonResult UploadFiles(object parUploadBytearry)
{
if (parUploadBytearry== null)
return null;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
var pathtosSave = System.IO.Path.Combine(Server.MapPath("~/Content/uploaded"), "Test11.png");
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
bf.Serialize(ms, parUploadFiles);
var Barr = ms.ToArray();
var s = new System.Web.Utils.FileFromBar(pathtosSave, BR);
}
}
因为它确实发布和接收数据一直到成功将数据 (.png) 保存到系统中的文件,所以数据不合法。
在对象到字节数组尝试之前最后一次理智的尝试是这个 msdn Code example 1
传递 C# 可以理解的字节数组的正确方法是什么?
(如果是文件raw byte[] 或png 图像之类的文件)
【问题讨论】:
-
在您的
SomeClassWithByteArray示例中,如果传输协议是JSON,您如何序列化字节数组? Base64? -
这也是一个选项,正如我在帖子开头所说的复杂对象,我使用了
toDictionary插件,我希望 原始数据,作为它的成员之一, 将是最简单的,然后以任何有效的方法进行转换
标签: c# ajax asp.net-mvc asp.net-mvc-4 bytearray