<input type="file" accept="image/*"/>
etiketini kullanarak fotoğrafları bir mobil aygıttan karşıya yüklemek için bir web sayfasında çalışıyorum. Bu iphone üzerinde güzel çalışır ve android üzerinde krom, ama nerede sorunları yaşıyoruz stok android tarayıcı ile.Stok ile sorun Tarayıcıdan fotoğraf seçen tarayıcı
Sorun, galerinizden bir dosya seçtiğinizde ortaya çıkar (fotoğraf çekmek için fotoğraf makinesini kullandığınızda iyi çalışır). Ayrıca stok tarayıcısındaki galeriden alındığında veri MIME türünün mevcut olmadığını görmemiz için daha da daraltdık (aşağıdaki fotoğraflar yüklenmekte olan veri URL'sinin ilk 100 karakterini göstermektedir. Amaç JPEG'yi zorlamaktı. ancak MIME türü olmadan bunu nasıl düzeltebileceğimizi bilemeyiz .. Görüntülerin nasıl işlendiğini görmek için aşağıdaki kodlara bakın:
Görüntü nasıl yazılmadan nasıl yazılır? stok android tarayıcı üzerinde mevcut değildir?
DÜZENLEME Öncelikle
, bu aynı görüntü değildir, onlar yakın alınmıştır Aynı zaman, ve bu sorun değil, bu yüzden veri farklıdır (MIME türü stok tarayıcıda herhangi bir görüntüde görünmüyor, bu yüzden sorun değil.
Güncelleme
Ben MIME türü bu krom üzerinde stok tarayıcıya resim/jpeg ekleyerek sorunu olduğunu doğruladı. Maalesef, jpeg olacak garanti yolu yoktur, bu yüzden tekrar gerçekten bu şekilde yapamaz
_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) {
}
}
Krom
Stok Tarayıcı
"append" işlevine iletilen nesnenin 'id 've' load' özellikleri arasında bir virgül özlüyor musunuz? Ayrıca, uyarıdan ("Render") sonra bir noktalı virgül eksik. – lxgreen
Aslında bir virgül var, SO için kodumu temizlerken yanlışlıkla kaldırdım. Uyarı ("Render") gerçekten bir noktalı virgül eksik, ancak bu benim hata ayıklama amaçları için oradaydı ve ben hala ben sorunları hala vardı –
sorunları vardı .. her durumda, bu jsfiddle deneyin: http: // jsfiddle .net/MGB3y/11 /. Bu, kodunuza göre basitleştirilmiş örneklemdir. benim HTC tarayıcımda çalışır (android 4.0.3). Bu yardımcı olur mu? – lxgreen