我用 html5 编写需要在手机上运行的应用程序,这个应用程序将图像从手机上传到我公司的服务器。现在它在安卓和电脑上工作,在 Iphone 上只有当我在前置摄像头中拍照时它才能工作,如果我从后置摄像头得到一张照片,我会得到空数据。
我为输入元素创建了一个 InputElement 类型文件和事件 onChange,它调用函数 inputFile_onChange 来获取一个 ElementEvent el:
var file = el.target.files[0];
var reader = new FileReader();
reader.onloadend = (function(theFile) {return function(e) {
$('#uploadImage').attr('src',e.target.result);
$('#uploadImage').css('display','none');
$($('#uploadImage')[0]).one('load',function(){
var cvs = document.createElement('canvas');
$image = $('#uploadImage')[0];
var savingCanvas = document.createElement('canvas');
savingCanvas.width = $image.naturalWidth;
savingCanvas.height = $image.naturalHeight;
var savingCanvasCtx = savingCanvas.getContext('2d');
FileUploadApp._globals.drawImage(savingCanvasCtx, $image, 0, 0,
savingCanvas.width,savingCanvas.height);
var newImageData = savingCanvas.toDataURL('image/jpeg', 0.2);
}).each(function() {if(this.complete) $(this).load();});
};
})(file);
reader.readAsDataURL(file);
我在 newImageData 创建并获取“数据:”之后发出警报,当我在网上寻找答案时,我发现如果画布尺寸为 0,我会得到这个,但我也打印尺寸 - 宽度和高度,它们都是大 >1000
我很高兴能得到一些帮助。