我有以下問題。 我正在使用畫布調整用戶上傳到我的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