How can I show you the files already stored on server using Dropzone.js

后端 未结 9 2096
长发绾君心
长发绾君心 2020-12-22 23:39

I Don\'t understand that... call its always undefined

Create the mock file:

var mockFile = { name: \"Filename\", size: 12345 };
         


        
相关标签:
9条回答
  • 2020-12-23 00:18

    In this answer https://stackoverflow.com/a/17763511, it's implemeneted with emmiting a thumbnail event.

    Following is an example of doing it using createThumbnailFromUrl.

    HTML element;

    <form id="sample-img" action="/upload" class="dropzone">
        <div class="dz-default dz-message"></div>
    </form>
    

    JS code;

    previewThumbailFromUrl({
        selector: 'sample-img',
        fileName: 'sampleImg',
        imageURL: '/images/sample.png'
    });
    
    function previewThumbailFromUrl(opts) {
        var imgDropzone = Dropzone.forElement("#" + opts.selector);
        var mockFile = {
            name: opts.fileName,
            size: 12345,
            accepted: true,
            kind: 'image'
        };
        imgDropzone.emit("addedfile", mockFile);
        imgDropzone.files.push(mockFile);
        imgDropzone.createThumbnailFromUrl(mockFile, opts.imageURL, function() {
            imgDropzone.emit("complete", mockFile);
        });
    }
    

    Working Samples on JSFiddle:

    1. Load images on same domain
    2. Load images with crossOrigin
    0 讨论(0)
  • 2020-12-23 00:22

    You can also do with the following code:

      <script>
            Dropzone.options.myAwesomeDropzone = false;
            Dropzone.autoDiscover = false;
            $("#image").dropzone({
                url: "http://someserver.com/upload.php",
                paramName: "image", // The name that will be used to transfer the file
                maxFilesize: 2, // MB
                maxFiles: 5,
                parallelUploads: 5,
                addRemoveLinks: true,
                dictMaxFilesExceeded: "You can only upload upto 5 images",
                dictRemoveFile: "Delete",
                dictCancelUploadConfirmation: "Are you sure to cancel upload?",
                accept: function (file, done) {
                    console.log(file)
                    if ((file.type).toLowerCase() != "image/jpg" &&
                            (file.type).toLowerCase() != "image/gif" &&
                            (file.type).toLowerCase() != "image/jpeg" &&
                            (file.type).toLowerCase() != "image/png"
                            ) {
                        done("Invalid file");
                    }
                    else {
                        done();
                    }
                },
                init: function () {
                    var mockFile = { name: "myimage.jpg", size: 12345, type: 'image/jpeg' };
                    this.addFile.call(this, mockFile);
                    this.options.thumbnail.call(this, mockFile, "http://someserver.com/myimage.jpg");
                }
            });
        </script>
    

    EDIT

    Since update of Dropzone 4.0 init function can be called as:

    init: function () {
       var mockFile = { name: "myimage.jpg", size: 12345, type: 'image/jpeg' };       
       this.options.addedfile.call(this, mockFile);
       this.options.thumbnail.call(this, mockFile, "http://someserver.com/myimage.jpg");
       mockFile.previewElement.classList.add('dz-success');
       mockFile.previewElement.classList.add('dz-complete');
    }
    
    0 讨论(0)
  • 2020-12-23 00:23
     var mockFile = { name: "banner2.jpg", size: 12345, uuid: "085b2b23-70e7-4175-8355-89937d8d46f2" };
     myDropzone.emit("addedfile", mockFile);
     myDropzone.options.thumbnail.call(myDropzone, mockFile, "https://your-thumbnail-image.jpg");
    

    On Init-Function of the Dropzone-Object init: function() { call this:

      this.on("addedfile", function(file) {
                            //Access the preview element with file.previewElement and add event listeners, etc... to it.
                            var a = document.createElement('a');
                            a.setAttribute('href',"{{{protokoll}}}://{{{HTTP_HOST}}}/a-getfiledb.php?uuid="+file.uuid);
                            a.setAttribute('class',"btn btn-success");
                            a.setAttribute('style',"width:50%; margin-top:5px; border-left:1px solid black; cursor:pointer;");
                            a.innerHTML = "<i class='glyphicon glyphicon-download-alt'></i>";
                            file.previewTemplate.appendChild(a);
      });
    
    0 讨论(0)
提交回复
热议问题