Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发送一个二进制数据数组,并将其高效地写入服务器端_Javascript_C#_Jquery_Ajax_Binary - Fatal编程技术网

Javascript 发送一个二进制数据数组,并将其高效地写入服务器端

Javascript 发送一个二进制数据数组,并将其高效地写入服务器端,javascript,c#,jquery,ajax,binary,Javascript,C#,Jquery,Ajax,Binary,我正在使用AJAX将一组图像发送到服务器,并在服务器端编写它们 我希望这是尽可能有效的,而且我很确定我现在做的是不好的: [WebMethod] public static int Upload(string[] images) { int index = 0; foreach (string image in images) { File.WriteAllBytes(string.Format("{0}.jpeg", index.ToString

我正在使用AJAX将一组图像发送到服务器,并在服务器端编写它们

我希望这是尽可能有效的,而且我很确定我现在做的是不好的

[WebMethod]
public static int Upload(string[] images)
{
     int index = 0;
     foreach (string image in images)
     {
         File.WriteAllBytes(string.Format("{0}.jpeg", index.ToString(), Convert.FromBase64String(image));
         index++;
     }
}
  • 字符串[]
    的形式发送图像数据无效
  • 使用
    JSON.stringify
    对图像数据进行字符串化是个坏主意
  • 在服务器端使用
    Convert.FromBase64String
    无效

  • 这是我的客户端代码

    [WebMethod]
    public static int Upload(string[] images)
    {
         int index = 0;
         foreach (string image in images)
         {
             File.WriteAllBytes(string.Format("{0}.jpeg", index.ToString(), Convert.FromBase64String(image));
             index++;
         }
    }
    
    这将从画布元素捕获图像并将其添加到数组:

    ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
    imagesArr.push(canvas.toDataURL('image/jpeg', JPEG_QUALITY).replace('data:image/jpeg;base64,', ''))
    
    这会将图像阵列发送到服务器:

    function sendImageBlock() {
    
        $.ajax({
            type: "POST",
            url: "/AJAXServices.aspx/Upload",
            data: JSON.stringify({images: imagesArr }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {},
            error: function (xhr, status, message) {}
        });
    
    }
    
    这是我的服务器端代码:

    [WebMethod]
    public static int Upload(string[] images)
    {
         int index = 0;
         foreach (string image in images)
         {
             File.WriteAllBytes(string.Format("{0}.jpeg", index.ToString(), Convert.FromBase64String(image));
             index++;
         }
    }
    

    有什么建议我怎样才能保持这个干净和有效?不要使用
    字符串
    格式,而是使用二进制数据purley

    您可以将uint32数组与xhr2(HTML5 XMLHttpRequest级别2)结合使用,以原始二进制格式发送数据

    XMLHttpRequest级别2引入了一系列新功能,使 结束我们网络应用程序中的疯狂黑客行为;比如交叉起源 请求、上载进度事件和支持 上传/下载二进制数据

    更多信息:


    可以通过以下方式在PHP中读取blob中的数据:

    <php>
        $data = file_get_contents('php://input');
    </php>
    
    
    $data=文件\u获取\u内容('php://input');
    
    您可以将UINT32阵列与xhr2(HTML5 XMLHttpRequest级别2)结合使用,以原始二进制格式发送数据

    XMLHttpRequest级别2引入了一系列新功能,使 结束我们网络应用程序中的疯狂黑客行为;比如交叉起源 请求、上载进度事件和支持 上传/下载二进制数据

    更多信息:


    可以通过以下方式在PHP中读取blob中的数据:

    <php>
        $data = file_get_contents('php://input');
    </php>
    
    
    $data=文件\u获取\u内容('php://input');
    
    另外-在我的情况下如何使用
    uint32阵列(1)
    ?要创建JPEG,您可以使用以下命令将画布数据缓冲区转换为UINT32阵列:var data=new UINT32阵列(canvas.data.buffer);谢谢,服务器端代码呢?webmhod应该接收哪些参数?blob中的数据可以这样读取:$data=file\u get\u contents('php://input');我使用的是.NET,我应该在webmethod接收的参数类型中声明什么?另外-在我的情况下如何使用
    Uint32Array(1)
    ?要创建JPEG,您可以使用以下命令将画布数据缓冲区转换为UINT32阵列:var data=new UINT32阵列(canvas.data.buffer);谢谢,服务器端代码呢?webmhod应该接收哪些参数?blob中的数据可以这样读取:$data=file\u get\u contents('php://input');我使用的是.NET,我的webmethod Receives的参数类型应该声明什么?