DropzoneJS 图片上传

DropzoneJS 图片上传

Posted by BY on August 5, 2019

DropzoneJS 图片上传

官网url

https://www.dropzonejs.com/#dropzone-methods

html


<form action="/file-upload"
      class="dropzone"
      id="my-awesome-dropzone">
</form>

<div class="layui-form-item">
        <label class="layui-form-label">尾部背景图上传</label>
        <div class="layui-inline">
            <div id="uploadFooterImg" class="dropzone"></div>
        </div>
        <input type="hidden" name="footer_img" id="footer_img" >
        <button type="button" class="layui-btn layui-btn-disabled" id="upload_footer_img_btn">开始上传</button>
</div>

js


<script>
var myDropzone = new Dropzone("div#uploadFooterImg", { url: "/file/post"});
</script>

$("#dropz").dropzone({
        url: "index.php", //必须填写
        method:"post",  //也可用put
        paramName:"Filedata", //默认为file
        maxFiles:10,//一次性上传的文件数量上限
        maxFilesize: 20, //MB
        acceptedFiles: ".jpg,.gif,.png", //上传的类型
        previewsContainer:"#adds", //显示的容器
        parallelUploads: 3,
        dictMaxFilesExceeded: "您最多只能上传10个文件!",
        dictResponseError: '文件上传失败!',
        dictInvalidFileType: "你不能上传该类型文件,文件类型只能是*.jpg,*.gif,*.png。",
        dictFallbackMessage:"浏览器不受支持",
        dictFileTooBig:"文件过大上传文件最大支持.",
        previewTemplate: document.querySelector('#preview-template').innerHTML,//设置显示模板
        init:function(){
            this.on("addedfile", function(file) { 
            //上传文件时触发的事件
            });
            this.on("queuecomplete",function(file) {
                //上传完成后触发的方法
            });
            this.on("removedfile",function(file){
                //删除文件时触发的方法
                 });
            });
        }
 
    });


上传图片显示


//uploadObj 对象
//name  图片名
//url   图片的url
//btnId 上传按钮id
function uploadImgShow(uploadObj, name, url, btnId)
{
    if(!name){
        return false;
    }
    var mockFile = { name: name, accepted:true };
    uploadObj.emit("addedfile", mockFile);
    uploadObj.emit("thumbnail", mockFile, url);
    uploadObj.emit("complete", mockFile);
    uploadObj.options.maxFiles = uploadObj.options.maxFiles - 1;
    $('#'+btnId).addClass('layui-btn-disabled');
}

其他

file.xhr.response.name 上传成功后的文件名

file.accepted true则已上传 false 未上传

如果您已autoProcessQueue禁用,则需要给.processQueue() 自己打电话。如果要显示文件并让用户单击“接受”按钮以实际上载文件,这将非常有用。