钛工作室至Grails imge post
我正试图将一个图像发布到我的grails应用程序中,但运气不太好 我的代码是:钛工作室至Grails imge post,grails,titanium-mobile,Grails,Titanium Mobile,我正试图将一个图像发布到我的grails应用程序中,但运气不太好 我的代码是: function upload(){ var xhr = Titanium.Network.createHTTPClient(); xhr.onerror = function(e){ Ti.API.info(picMedia + " : " +message.value); Ti.API.info('IN ERROR ' + e.error); a
function upload(){
var xhr = Titanium.Network.createHTTPClient();
xhr.onerror = function(e){
Ti.API.info(picMedia + " : " +message.value);
Ti.API.info('IN ERROR ' + e.error);
alert('Sorry, we could not upload your photo! Please try again.');
};
xhr.onload = function(){
Ti.API.info('IN ONLOAD ' + this.status + ' readyState ' + this.readyState);
};
xhr.onsendstream = function(e){
Ti.API.info('ONSENDSTREAM - PROGRESS: ' + e.progress);
};
// open the client
xhr.open('POST', 'http://localhost:8080/FYP/Profile/appUploader');
// send the data
xhr.send({
media: picMedia,
message: message.value,
});
}
我的grails代码如下所示:
def appUploader(){
println "MEDAI PARAMS: " + params.media
def f = request.getFile('media') ;
println "HERE: " + f
if (request.getFile(params.media).getOriginalFilename()) {
println "FROM APP: " + request.getFile('myFile').getOriginalFilename()
return
}
}
我从移动应用程序中获得错误,并且在web应用程序的“如果”行中出现错误。
我做错了什么?我们的一个应用程序也有同样的问题。困难在于,在这种情况下,Tianium实际上无法处理二进制文件 我们做了以下工作:
- 在客户端创建图像的base64编码字符串
- 将此字符串发布到后端
- 再次将base64解码为图像
我们分析了大量的网络流量,在大多数情况下,titanium试图发送文件,但由于javascript的缘故,它总是转换成某种ascii格式,服务器端无法使用。如果您试图通过ajax上传文件,您需要发布错误信息,你会玩得很不开心。你确定你使用的是
多部分/表单数据
内容类型吗?