Ich benutze Hochladen um Benutzern das Hochladen von Bildern auf meine WordPress-Website zu ermöglichen.
Wenn ein Benutzer auf „Dateien auswählen“ klickt und ein Bild aus der Galerie seines Mobiltelefons auswählt, wird der Dateiname des Bilds auf dem Bildschirm angezeigt. Der Benutzer kann dann auf „Dateien hochladen“ klicken, um den Upload zu starten.
Mein Problem
Wenn ein Benutzer auf „Dateien auswählen“ klickt und ein Foto mit seinem Kamerahandy aufnimmt, wird der Dateiname des Bildes nicht auf dem Bildschirm angezeigt. Wenn der Benutzer nun versucht, auf „Dateien hochladen“ zu klicken, passiert in diesem Fall nichts. Wie kann ich das lösen?
Anmerkungen
Das Problem tritt überhaupt nicht auf, wenn ich mein Tablet oder meinen Desktop verwende.
Aktualisieren
Meine Tests wurden mit zwei Mobilgeräten durchgeführt:
- Chrome auf einem Samsung Galaxy S4 Mini mit Android 4.2.2
- Chrome auf einem Samsung Galaxy Ace II mit Android 4.1.2
Hier ist eine Demo des Codes, den ich verwende: http://jsfiddle.net/djydce90/
Mein Skript
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'pickfiles',
container: document.getElementById( 'container' ),
url : "/examples/upload",
filters : {
max_file_size : '10mb',
mime_types: [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
},
flash_swf_url : '/plupload/js/Moxie.swf',
silverlight_xap_url : '/plupload/js/Moxie.xap',
init: {
PostInit: function() {
document.getElementById('filelist').innerHTML = '';
document.getElementById('uploadfiles').onclick = function() {
uploader.start();
return false;
};
},
FilesAdded: function(up, files) {
plupload.each(files, function(file) {
document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>';
});
},
UploadProgress: function(up, file) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
},
Error: function(up, err) {
document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
}
}
});
uploader.init();
Mein HTML
<script src="https://rawgit.com/moxiecode/plupload/master/js/plupload.full.min.js"></script>
<div id="filelist">Your browser doesn't have Flash, Silverlight or HTML5 support.</div>
<br />
<div id="container">
<a id="pickfiles" href="javascript:;">[Select files]</a>
<a id="uploadfiles" href="javascript:;">[Upload files]</a>
</div>
Ich habe auch ein ähnliches Problem mit dem Plupload-Beispiel auf meinem Android (HTC One: Custom Rom) …. Es kann mit Plupload selbst zu tun haben: oder dieser bestimmten Implementierung. (Wenn Sie möchten, kann ich eine andere Lösung vorschlagen, wenn Sie Abhängigkeiten ändern können.)
– Klette
8. November 2014 um 20:48 Uhr
@Burdock Darf ich fragen, welche Version von Android auf Ihrem HTC läuft? Und bitte schlagen Sie eine andere Lösung vor, wenn Sie eine haben 🙂
– Hendrik Wright
8. November 2014 um 22:57 Uhr
@henrtywright Android 4.2.2: HTC Sense 5.0: HTC SDK api level 5.34: Trickdroid 7.5.something ….. und Chrome
– Klette
9. November 2014 um 0:10 Uhr
Danke @Burdock. Bisher habe ich insgesamt 4 Android-Tests und 1 iOS-Test durchgeführt. Das Problem scheint nur auf Android-Handys aufzutreten, auf denen eine Version von Android unter 4.4.2 ausgeführt wird.
– Hendrik Wright
9. November 2014 um 0:16 Uhr
Ich persönlich verwende keine Bibliothek, um das Hochladen von Dateien zu handhaben. Es lohnt sich zu lernen, wie man es selbst macht, wenn man die Zeit hat. Ansonsten ist jQuery-File-Upload IMO die am einfachsten zu implementierende Bibliothek: github.com/blueimp/jQuery-File-Upload
– Klette
9. November 2014 um 0:26 Uhr