1

我用来获取图像数据并发布它的代码是这样的,imageData 是一个 Uint8ClampedArray,它是一个视频流。但是每次我尝试提交时都会收到错误消息。味精是“未捕获的类型错误:非法调用”

var imageData = ctx.getImageData(0, 0, width, height);
$.ajax({
    url: '/blog/saveblog',
    type: 'POST',
    data:{videoData: videoData},
    success: function (result) {
        loadMine();
    }
});

服务器是用 Spring mvc 构建的,我写了一个控制器来处理这个 post 请求,但它永远不会进入。

谁能帮我解决这个问题?谢谢。!

4

1 回答 1

1

迟到的答案,但如果它可以帮助某人......

这是将画布数据发布到服务器的一种方法

    function(canvas) {
        $.post('/blog/saveblog',
             {
                image: canvas.toDataURL()
              },
              function(data) {...});
      }

以及一种使用spring MVC在服务器端管理它的方法

    @RequestMapping(value = "/saveblog")
    @ResponseBody
    public void saveBlog(@RequestParam(value="image", required=false) String imageBase64) throws IOException
        long now = Calendar.getInstance().getTimeInMillis();
        byte[] bytes = imageBase64.replaceAll("data:image/.+;base64,", "").getBytes();

        File image= new File("./folder", "image.jpeg");

        if(!image.exists()){
            Files.createParentDirs(image);
        }
        Files.write(DECODER.decode(bytes), image);
    }

这适用于图像,我认为它也适用于视频(需要更改行imageBase64.replaceAll("data:image/.+;base64,", "")

于 2014-01-16T19:41:06.683 回答