3
는 다음 도메인 클래스 적이 :Grails의 캔버스에서 이미지를 업로드
class Topic {
byte[] image
}
그것은 컨트롤러는 :
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
}
}
}
그리고 아약스 요청 :
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
). 어떻게해야할까요? 이미지에 대한 모든 참조를 제거해도 괜찮지 만 원하는 것은 아닙니다. 또 다른 경우에는 ID 나 이미지가 컨트롤러 측에서 감지되지 않습니다 (params
맵).
업데이트 : 문제는 그런 식으로 해결되었습니다. 컨트롤러 방법 :
def uploadImage() {
//println params
if(params.image && params.id){
def topic = Topic.get(params.id)
topic.image = Base64.decode(params.image)
}
}
JS 기능 :
Failed to load resource: the server responded with a status of 404 (Not Found)
POST ../uploadImage 404 (Not Found)
무엇 내가 그것을 해결하기 위해 수행해야 내가 브라우저 측에 다음 메시지가 계속
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});
}
그러나?
감사합니다. 작동합니다. – tiktak