Plupload: So laden Sie direkt von einer Kamera hoch (auf Mobilgeräten)

Lesezeit: 3 Minuten

Benutzer-Avatar
Heinrich

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:

  1. Chrome auf einem Samsung Galaxy S4 Mini mit Android 4.2.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>

Ref: http://www.plupload.com/examples/core

  • 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

Das Problem kommt von der Methode zum Erfassen von Bildern. Android gibt Ihnen ein Bitmap-Objekt, wenn Sie ein Bild aufnehmen, also müssen Sie dieses Bitmap anstelle einer Datei hochladen. Wenn Sie eine Datei aus Ihrem Speicher auswählen, sendet es Ihnen diesen Pfad, aber Sie werden erfasst Geben Sie diese Fotodaten im Detail an. Sie müssen also diese Fotodaten hochladen, anstatt eine Datei hochzuladen. Ich weiß nicht genau, ob pluplaoad damit umgehen kann oder nicht, aber Sie können über diesen Link gehen, um einen Blick darauf zu werfen.

1378280cookie-checkPlupload: So laden Sie direkt von einer Kamera hoch (auf Mobilgeräten)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy