我有以下问题。 我正在使用画布调整用户上传到我的webapp的图片大小。 然后,我从画布上检索图片作为base64编码的字符串,并尝试将其上传到解析服务器。 因为解析支持base64我认为它可以工作。上传图片为base64要解析的字符串
但是当我上传的图片,没有图像,而是这条消息对每个图像文件我上传:
{ “_ContentType”: “图像/ JPG”, “_的applicationID”:”我的申请 ID“,”_ JavaScriptKey“:”我的JAVAZCRIPT KEY“,”_ ClientVersion“:”js1.3.5“,”_ InstallationId“:”安装 ID“,”_ SessionToken“:”当前用户的会话“}
我可以检索文件,b我得到的是没有图像。
这是我上传的图片代码:
var fileUploadControl = $("#product_pictureUploadModal")[0];
if (fileUploadControl.files.length > 0) {
//THE USER SUCCESSFULLY SELECTED A FILE
var file = fileUploadControl.files[0];
if(file.type.match(/image.*/)){
//RESIZE THE IMAGE AND RETURN a base64 STRING
var resizedImage = resizeImage(file);
//CREATE A PARSE FILE
var name = "picture.jpg";
var parseFile = new Parse.File(name, {base64: resizedImage}, "image/jpg");
parseFile.save().then(function() {
//IMAGE SUCCESSFULLY UPLOADED
},
function(error){
alert(error.message);
});
}else{
//THE USER DIDNT CHOSE A PICTURE
}
}else{
//THE USER DIDNT SELECT A FILE
}
这里是我调整了图片代码:
function resizeImage(file){
var MAX_WIDTH = 400;
var image = new Image();
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
var url = window.URL || window.webkitURL;
var src = url.createObjectURL(file);
image.src = src;
return image.onload = function(){
ctx.clearRect(0, 0, canvas.width, canvas.height);
if(image.width > MAX_WIDTH){
if(image.width > image.height){
image.height = (image.height%image.width)*400;
}else{
image.height = (image.height/image.width)*400;
}
alert("image height " + image.height);
image.width = 400;
}
canvas.width = image.width;
canvas.height = image.height;
ctx.drawImage(image, 0, 0, image.width, image.height);
url.revokeObjectURL(src);
var fileRezized = encodeURIComponent(canvas.toDataURL("image/jpg"));
return fileRezized;
};
}
缺少什么我在这里?
我希望你们能帮助我。我已经在这方面投入了大量的工作和时间,而且似乎没有比这更进一步。
我想调整浏览器中的图像大小,否则上传速度可能对某些人来说太慢了,因为我的应用程序也可用于手机。来自德国,马文
我自己解决了。问题出在我的回调中。我返回image.onload =函数(),所以基本上只是一个函数返回,而不是img文件 – Sakramento 2015-04-08 17:17:52
良好的调用。但是,对于可能影响最终结果的其他问题,您还应该看到其他答案。考虑发布你的发现作为回答,并标记为接受。这样这个问题将被关闭。 – K3N 2015-04-09 00:09:59