2015-04-29 10 views
14

Ho un file fino loader generico che assomiglia a questo:di upload di file di più file di input non funziona sul dispositivo mobile

<span class="input-group-btn"> 
    <span class="btn btn-default btn-fill btn-file"> 
     Browse<input type="file" id="fileInputs" multiple accept="image/*" onclick="resetprogresss()"> 
    </span> 
</span> 

posso caricare più file con il mio desktop senza problemi, ma quando provo e utilizzare il stessa funzionalità su un dispositivo mobile, non riesco a selezionare più file.

Ecco l'javascript:

var Filenames; 

function generateUUID() { 
    var d = new Date().getTime(); 
    var uuid = 'xxxxxxxxxxx'.replace(/[xy]/g, function (c) { 
     var r = (d + Math.random() * 16) % 16 | 0; 
     d = Math.floor(d/16); 
     return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16); 
    }); 
    return uuid; 
}; 

var MainPath = generateUUID(); 
var Names = []; 

function UploadFiles() { 
    var SetDir = MainPath; 
    var fileInputs = document.getElementById("fileInputs"); 
    if ('files' in fileInputs) { 
     if (fileInputs.files.length == 0) { 
      alert("Please select a file"); 
      return; 
     } else { 
      var file = fileInputs.files[0]; 
      var ar = $("#AutoResumeBoxs").is(":checked"); 
      var chunksize = 20000; 
      var name = SetDir; 

      /* 
      Arguments: 
       username   name used to create subfolders on the server. 
       files    files object from the file input tag. 
       uploadStartFunction function that receives a file object just before uploading. 
       progressFunction function that accepts a percent-complete integer value. 
       doneFunction  function called when file is uploaded. 
       errorFunction  function called when an error occurs. 
       chunkSize   size in bytes of each chunk uploaded. 
       autoResume   bool to control auto resuming. 
      */ 
      CFUpload(name, fileInputs.files, uploadStarts, progresss, dones, errors, chunksize, ar); 
     } 
    } 
} 

function uploadStarts(thisfile) { 
    Names.push(thisfile.name); 


} 

function progresss(percent) { 

    var p = percent + "%"; 
    $("#lblUPs").text(p); 
    $("#progressbars").width(p); 
    $("#progressbars").attr("data-appear-progress-animation", p); 
    $("#ProgressTabs").text(p); 
} 

function resetprogresss() { 
    progresss(0); 
} 

function dones() { 


} 

function errors(data) { 

} 

function setCookie(c_name, value, exdays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
    document.cookie = c_name + "=" + c_value; 
} 

function getCookie(c_name) { 
    var c_value = document.cookie; 
    var c_start = c_value.indexOf(" " + c_name + "="); 
    if (c_start == -1) { 
     c_start = c_value.indexOf(c_name + "="); 
    } 
    if (c_start == -1) { 
     c_value = null; 
    } 
    else { 
     c_start = c_value.indexOf("=", c_start) + 1; 
     var c_end = c_value.indexOf(";", c_start); 
     if (c_end == -1) { 
      c_end = c_value.length; 
     } 
     c_value = unescape(c_value.substring(c_start, c_end)); 
    } 
    return c_value; 
} 

$(document).ready(function() { 
    $("#urls").hide(); 
    document.getElementById("saveme").disabled = true; 

    var username = getCookie("username"); 
}); 

Io uso questo library per caricare i file. Qualsiasi consiglio sarebbe molto apprezzato.

+0

posso selezionare più file usando ctrl, come pensi di farlo su mobile? – ProllyGeek

+1

@ProllyGeek Non sono sicuro che sia quello che sto cercando di scoprire. Voglio selezionare più file da dispositivi mobili, con questo ho già creato i metodi dell'API Web, il caricamento di jQuery nell'API Web, ma non posso selezionare più file dalla mia raccolta per cellulari da utilizzare per il caricamento. –

+0

@Jacquer Bronkhorst quando ho provato il tuo codice http://fiddle.jshell.net/prollygeek/n3Lvjo81/, ho potuto scegliere solo i file premendo ctrl + più file! c'è qualche altro comportamento in cui non sono a conoscenza? – ProllyGeek

risposta

7

Beh, dipende dal metodo di selezione scelto sul cellulare, tuttavia, la mia galleria nativa e il file manager funzionano perfettamente sul mio cellulare, basta toccare e tenere premuto il file che si desidera caricare e passerà a multi modalità di selezione:

Multiple Upload

Multiple Choice

si prega di notare che ci sono molti plugin jQuery là fuori per caricare i file come this one, quindi non è necessario l'utilizzo di pura h tag di input tml.

Problemi correlati