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
}
}
}
和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
)。什麼是正確的方法來做到這一點? 當我刪除所有對圖像的引用時,沒關係,但不是我想要的。在另一種情況下,控制器一側都沒有檢測到標識和圖像(params
地圖)。
UPDATE:問題以這種方式解決。控制方法:
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)
我應該怎麼做來解決它?
謝謝,它的工作原理。 – tiktak 2012-01-03 15:38:39