ajax - 使用Grails从 Canvas 上载图像

标签 ajax image grails upload html5-canvas

具有以下域类:

class Topic {
    byte[] image
}

它是 Controller :
class TopicController {

def uploadImage () {
        println params
        if(params.image && params.id && params.image.length != 0){
            def topic = Topic.get(params.id)
            topic.image = params.image
        }
    }

}

和ajax请求:
function postImage(){
    var topicId = $('#topic-id').attr('value');
    var imageData = context.getImageData(0,0,canvas.width, canvas.height);
    $.post("../uploadImage", {'id': topicId,'image': imageData.data});
}

未启用发送图像数据(imageData.data)的功能。什么是正确的方法?
当我删除所有对图像的引用时,没关系,但不是我想要的。在另一种情况下,在 Controller 侧(params映射)均未检测到id和图像。

更新:以这种方式解决了问题。 Controller 方式:
def uploadImage() {
    //println params
    if(params.image && params.id){
        def topic = Topic.get(params.id)
        topic.image = Base64.decode(params.image)
    }
}

JS功能:
function postImage(){
        var topicId = $('#topic-id').attr('value');
        var image = canvas.toDataURL("image/png");
        image = image.replace('data:image/png;base64,', '');
        $.post("../uploadImage", {'id': topicId,'image': image});
    }

但是我继续在浏览器端收到下一条消息:
Failed to load resource: the server responded with a status of 404 (Not Found)
POST ../uploadImage 404 (Not Found)

我应该怎么做才能解决?

最佳答案

要解决剩余的问题,请尝试在uploadImage方法的末尾呈现一些内容:

def uploadImage() {
    //println params
    if(params.image && params.id){
        def topic = Topic.get(params.id)
        topic.image = Base64.decode(params.image)
    }

    render 'Success'
}

如果您不执行导致响应提交的操作(例如render()redirect()),Grails将尝试渲染与操作名称相同的 View (在您的情况下为uploadImage.gsp)。

关于ajax - 使用Grails从 Canvas 上载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706626/

相关文章:

javascript - 删除表中带有复选框的数据

javascript - PHP 获取按钮 $_POST 单击时的值

c++ - boost:python 传递一个指向指针的指针作为参数

grails - 如何完全引导Grails环境?

javascript - 将表单中的输入添加到同一页面中的表中,无需重新加载

javascript - 使用 jQuery/AJAX 提交表单,提交时无法阻止页面刷新?

image - 在 React Native 中动态更改图像 URL

windows - 我需要做什么才能将 DIB 转换为 BMP?

java - 打开 SAML xml-apis Maven 依赖问题

grails - 使用GGTS升级到Grails 2.2.0的问题