<input type="file" accept="image/*"/>
タグを使用してモバイルデバイスから写真をアップロードするためのWebページを作成しています。これはiPhoneとChromeのアンドロイド上で美しく機能しますが、私たちが問題に取り組んでいるところは、アンドロイドのブラウザにあります。在庫ありブラウザギャラリーから写真を選ぶ
ギャラリーからファイルを選択すると、問題が発生します(カメラを使用して写真を撮ると問題なく動作します)。また、ストックブラウザのギャラリーから取得したデータMIMEタイプが利用できないことを確認するために、さらに絞り込んだ(下の写真は、ロードされるデータURLの最初の100文字を示しています。しかし、MIMEタイプがなくても、これを修正する方法を知ることはできません。画像のレンダリング方法は以下のコードを参照してください。株式アンドロイドのブラウザでは利用できません?
EDITまず
、これらは同じ画像ではありません、彼らは近く撮影されましたそれは問題ではないので、データが異なっています(MIMEタイプはストックブラウザ上のどの画像にも表示されないので、問題はありません)。
更新
私は、MIMEタイプは、それがクロムである株式のブラウザに画像/ JPEGを挿入することで問題であることを確認しました。残念ながら、我々はJPEGになるだろうことを保証する方法がないので、我々は再び本当にそのように行うことができません
_readInputFile: function (file, index) {
var w = this, o = this.options;
try {
var fileReader = new FileReader();
fileReader.onerror = function (event) {
alert(w._translate("There was a problem opening the selected file. For mobile devices, some files created by third-party applications (those that did not ship with the device) may not be standard and cannot be used."))
$('#loadingDots').remove();
return false;
}
fileReader.onload = function (event) {
var data = event.target.result;
//alert(data.substring(0,100));
//var mimeType = data.split(":")[1].split(";")[0];
alert("Load Image"); //I get to this point
$('#' + w.disp.idPrefix + 'hiddenImages').append($('<img />', {
src: data,
id: "dummyImg" + index,
load: function(){
var width = dummy.width();
var height = dummy.height();
$('#dummyImg' + index).remove();
alert("Render"); // I don't get here
var resized = w._resizeAndRenderImage(data, null, null, biOSBugFixRequired, skewRatio, width, height);
alert("Image Rendered"); // I don't get here
}
}));
}
fileReader.readAsDataURL(file);
}
catch (e) {
}
}
クローム
ストックブラウザ
あなたは 'append'関数に渡されたオブジェクトの' id'と 'load'プロパティの間にカンマがありませんか?また、 'alert(" Render ")の後のセミコロンもありません。 – lxgreen
実際にはコンマがありますので、私のコードを掃除する際に誤って削除しました。アラート(「レンダリング」)は実際にはセミコロンがありませんが、それはデバッグ目的のためだけにありましたが、私はまだ問題があったことを修正した後に –
ok ..どんな場合でも、このjsfiddleを試してください:http:// jsfiddle .net/MGB3y/11 /。これはコードに基づいた簡単なサンプルです。それは私のHTC在庫ブラウザ(アンドロイド4.0.3)で動作します。これは役に立ちますか? – lxgreen