2014-10-30 13 views
7

Sto utilizzando Plupload per consentire agli utenti di caricare immagini sul mio sito Web WordPress.Plupload: Come caricare direttamente da una telecamera (su dispositivi mobili)

Quando un utente fa clic su "Seleziona file" e sceglie un'immagine dalla galleria del cellulare, il nome file dell'immagine viene visualizzato sullo schermo. L'utente è quindi libero di fare clic su "Carica file" per avviare il caricamento.

Il mio problema

Quando un utente fa clic su 'file Selezionare' e prende una foto con il loro telefono cellulare con fotocamera, il nome del file di immagine non appare sullo schermo. In questo caso, quando l'utente prova a fare clic su "Carica file", non accade nulla. Come posso risolvere questo?

Note

Il problema non si verifica affatto quando uso la mia tablet o desktop.

Aggiornamento

Il mio test è stato fatto per mezzo di due dispositivi mobili:

  1. Chrome su un Galaxy S4 mini di Samsung con sistema operativo Android 4.2.2
  2. Chrome su un Android in esecuzione Samsung Galaxy Ace II 4.1.2

Ecco una demo del codice che sto utilizzando: http://jsfiddle.net/djydce90/

Il mio script

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

mio 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> 

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

+0

Inoltre sto avendo un problema simile con l'esempio plupload sul mio Android (HTC uno: custom rom) .... Può avere a che fare con plupload è di per sé: o quel particolare implementazione. (Se vuoi poter suggerire una soluzione diversa se sei in grado di cambiare le dipendenze) – Burdock

+0

@Burdock Posso chiedere quale versione di Android è in esecuzione sul tuo HTC? E per favore suggerisci una soluzione diversa se ne hai una :) – henrywright

+0

@henrtywright Android 4.2.2: HTC sense 5.0: HTC SDK api livello 5.34: Trickdroid 7.5.qualcosa ..... e Chrome – Burdock

risposta

1

Il problema deriva dal metodo di cattura images.And roid ti dà un oggetto bitmap quando fai una foto, quindi devi caricare quella bitmap invece di un file. Quando selezioni un file dalla tua memoria, ti manda quel percorso, ma nel catturare tu dai quei dati fotografici in dettaglio. quindi devi caricare i dati delle foto invece di caricare un file. Non so esattamente come può essere gestito da pluplaoad o no, ma puoi consultare questo link per vederlo.