2014-10-30 15 views
7

Używam Plupload, aby umożliwić użytkownikom przesyłanie zdjęć do mojej witryny WordPress.Plupload: Jak przesłać bezpośrednio z kamery (na urządzenia mobilne)

Gdy użytkownik kliknie "Wybierz pliki" i wybierze obraz z galerii telefonu komórkowego, nazwa pliku obrazu pojawi się na ekranie. Użytkownik może następnie kliknąć "Prześlij pliki", aby rozpocząć przesyłanie.

Mój problem

Gdy użytkownik kliknie na „Wybierz pliki” i robi zdjęcie ze swojego telefonu z aparatem, nazwa pliku obrazie nie pojawia się na ekranie. W takim przypadku, gdy użytkownik próbuje teraz kliknąć "Przesyłaj pliki", nic się nie dzieje. Jak mogę to rozwiązać?

Uwagi

Problem nie zdarza się w ogóle, gdy używam tabletu lub komputera stacjonarnego.

Aktualizacja

Moje badania przeprowadzono za pomocą dwóch urządzeń mobilnych:

  1. Chrome na Samsung Galaxy S4 Mini z systemem Android 4.2.2
  2. Chrome na bieżącą Samsung Galaxy Ace II Androida 4.1.2

Oto wersja kodu, którego używam: http://jsfiddle.net/djydce90/

Mój skrypt

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(); 

Moje 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

+0

Ja również mające podobny problem z moim przykładzie plupload na Androida (HTC jeden custom ROM) .... Może to mieć związek z plupload to samo: czy ten konkretny realizacja. (Jeśli chciałbyś zaproponować inne rozwiązanie, jeśli potrafisz zmienić zależności) – Burdock

+0

@Burdock Czy mogę zapytać, w której wersji Androida działa twój HTC? I proszę zaproponuj inne rozwiązanie, jeśli masz je :) – henrywright

+0

@henrtywright Android 4.2.2: HTC sensie 5.0: HTC SDK poziom api 5.34: Trickdroid 7.5.something ..... i Chrome – Burdock

Odpowiedz

1

Problem pochodzi od metody przechwytywania images.And roid daje ci obiekt bitmapowy podczas robienia zdjęć, więc musisz załadować tę bitmapę zamiast pliku. Po wybraniu pliku z pamięci wysyła ci tę ścieżkę, ale przechwytując, podajesz dane zdjęcia w szczegółach. więc musisz przesłać te zdjęcia zamiast przesyłać plik. Nie wiem, czy dokładnie można to załatwić, czy nie, ale możesz przejść przez ten link, aby go zobaczyć.