c# - 我如何在 Javascript 中处理文件 ByteArray

标签 c# javascript asp.net-mvc-3

我有一个闪存记录器,它记录用户输入并给我一个 JavaScript 字节数组文件

现在我想将该字节数组上传到服务器(MVC3),我想知道如何做到这一点?

最佳答案

您可以使用 AJAX 请求将字节数组作为原始数据发送到服务器。我们可以实现一个自定义模型绑定(bind)器,它将读取原始请求正文并将其映射到 byte[]:

public class ByteArrayModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var request = controllerContext.HttpContext.Request;
        var buffer = new byte[request.InputStream.Length];
        request.InputStream.Read(buffer, 0, buffer.Length);
        return buffer;
    }
}

然后我们可以有一个 Controller 操作来接收此请求:

[HttpPost]
public ActionResult Upload([ModelBinder(typeof(ByteArrayModelBinder))] byte[] buffer)
{
    // TODO: do something with the uploaded data
    return Json(true);
}

最后在客户端发送AJAX请求:

// create sample data from the A,B,C bytes:
var data = String.fromCharCode(65, 66, 67);

$.ajax({
    url: '@Url.Action("upload")',
    type: 'POST',
    contentType: 'application/octet-stream',
    processData: false,
    data: data,
    success: function (result) {
        alert(result);
    }
});

关于c# - 我如何在 Javascript 中处理文件 ByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8868371/

相关文章:

c# - 尝试评估 bool 时出错?

c# - 使用屏蔽文本框来验证输入

C# Windows 10 IoT StreamSocketListener 在 Release模式下随机停止监听

javascript - Parse.com 代码不会部署 : "Could not load triggers"

asp.net-mvc-3 - 将MVVM应用于ASP.NET MVC。如何进行属性映射?

asp.net-mvc-3 - 将字符串数组绑定(bind)到 MVC Razor 中的 DropDownList

c# - 在 LINQ to SQL 中禁用触发器

javascript - 如何使用 vanilla javascript 通过 ajax 将多张照片上传到 Laravel 应用程序?

javascript - PHP 限制输入字段的字符数

razor - Response.Write() 是否与 Razor 一起使用?