2015-04-29 102 views
14

上工作,我有一个通用的文件了装载机看起来像这样:输入文件上传多个文件没有移动设备

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

我可以上传多个文件与我的台式机没有问题,但是当我尝试和使用移动设备上的相同功能,我似乎无法选择多个文件。

这里是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"); 
}); 

我用这个library上传的文件。任何建议将不胜感激。

+0

我可以使用ctrl选择多个文件,你打算如何在移动设备上执行此操作? – ProllyGeek

+1

@ProllyGeek我不知道这是我想要找出。我想从移动设备中选择多个文件,借此,我已经创建了Web-API方法,将jQuery上传到Web-API,但我无法从手机库中选择多个文件用于上传。 –

+0

@Jacquer Bronkhorst当我尝试你的代码http://fiddle.jshell.net/prollygeek/n3Lvjo81/时,我只能选择按Ctrl +多个文件的文件!有没有其他行为我不知道? – ProllyGeek

回答

7

那么这取决于您在手机上选择的选择方法,但是,我的本机图库和文件管理器在我的手机上可以很好地工作,只需点击并按住要上传的文件,它就会切换到多点选择模式:

Multiple Upload

Multiple Choice

请注意,有很多jQuery插件在那里上传文件,如this one,所以没有必要使用纯^ h tml输入标签。

相关问题