我正在建立一个移动网站,让用户可以从他们的相机上传照片。
我可以从用户相册中获取图像,当用户在 iPhone4 和 Android 4 上的 iOS6 中拍照时,我可以获取图像,但是当用户使用 iPhone5(也使用 iOS6)拍照时,我什么也得不到。我可以从用户的相册中获取图像,但在拍照时不能。
这是下面的代码和jsfiddle
$('input#file_api').change(function(evt){
var image = evt.target.files[0];
var reader = new FileReader();
reader.onerror = (function(){alert('error reading file')});
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var tempImg = new Image();
tempImg.src = reader.result;
tempImg.onload = function(){
var canvas = document.createElement('canvas');
canvas.width=tempImg.width;
canvas.height=tempImg.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(tempImg,0,0);
$('body').append(canvas);
})(image);
reader.readAsDataURL(image);
我在这里有一个例子http://jsfiddle.net/8DJUy/4/
如果您使用文件选择器获取照片,它会将照片附加到页面。如果你用 iPhone5 拍照,它不会附加任何东西。但同时,它也不会出错。
关于如何解决这个问题的任何建议?
我不太清楚抓照片有什么问题。
我这样抓照片的原因是直接从手机上传时文件很大,用例不需要高分辨率图像,所以我在上传之前使用画布调整图像大小.