h5 手機瀏覽器多文件上傳


話不多說直接上代碼

以下是h5代碼,因為之后qq瀏覽器和華為和小米自帶的瀏覽器可以一次性選多張圖片,所以在其他瀏覽器下,我們只能采用多個input選多次的方式來實現文件上傳

h5 用的框架是jq ui,文件上傳的插件也是用的這個不過有一個要注意的就是 input 一定要放在div 下,不能放在ul 下,不然會有非常美妙的效果,你懂得,ul 下只能放li子元素


<
div class="weui-uploader"> <div class="weui-uploader__hd"> <p class="weui-uploader__title">圖片上傳</p> </div> <div class="weui-uploader__bd"> <ul class="weui-uploader__files" id="uploaderFiles"> </ul> <div class="weui-uploader__input-box" id="inputbox"> <input id="uploaderInput0" class="weui-uploader__input" name="images[0]" type="file" accept="image/*" multiple=""> </div> </div> </div>

下面是js代碼

$(function () {
        var tmpl = '<li class="weui-uploader__file" style="background-image:url(#url#)"></li>',
            $gallery = $("#gallery"),
            $galleryImg = $("#galleryImg"),
            $uploaderFiles = $("#uploaderFiles");


        var imageIndex = 0;

        function jsFileChange(event) {
            console.info("jsFileChange run")
        //這一部分是圖片預覽的效果
var src, url = window.URL || window.webkitURL || window.mozURL, files = event.target.files; for (var i = 0, len = files.length; i < len; ++i) { var file = files[i]; if (url) { src = url.createObjectURL(file); } else { src = event.target.result; } $uploaderFiles.append($(tmpl.replace('#url#', src))); }
        //選完當前圖片之后隱藏當前input,然后創建一個新的input 來接收下一個圖片或文件 $(
"#uploaderInput" + imageIndex).css('display', 'none'); imageIndex++; var imgInputStr = '<input id="uploaderInput' + imageIndex + '" class="weui-uploader__input" name="images[' + imageIndex + ']" type="file" accept="image/*" multiple="">'; $("#inputbox").append(imgInputStr); $("#uploaderInput" + imageIndex).on("change", jsFileChange); } $("#uploaderInput0").on("change", jsFileChange); var index; //第幾張圖片 $uploaderFiles.on("click", "li", function () {
      //預覽之后可以刪除,這是刪除代碼 index
= $(this).index(); $galleryImg.attr("style", this.getAttribute("style")); $gallery.fadeIn(100);
        //刪除完縮略圖之后刪除對應的input元素 $(
"#inputbox input:eq(" + index + ")").remove(); }); $gallery.on("click", function () { $gallery.fadeOut(100); }); //刪除圖片 刪除圖片的代碼也貼出來。 $(".weui-gallery__del").click(function () { console.log('刪除'); $uploaderFiles.find("li").eq(index).remove(); }); });

參考:https://www.zhihu.com/question/24212111
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM