【问题标题】:Upload images in placeholder dropzone?在占位符放置区上传图像?
【发布时间】:2017-02-10 22:32:06
【问题描述】:

我正在使用 dropzone 上传我的图片,如下所示:

     var myDropzone = new Dropzone(document.getElementById('product-image-drpzone'), {
        uploadMultiple: false,
        acceptedFiles: '.jpg,.png,.jpeg,.gif',
        parallelUploads: 4,
        maxFiles: 4,
        url: Urls.products.image_upload
    });

    myDropzone.on('sending', function (file, xhr, formData) {
        formData.append('cloud_name', '');
        formData.append('api_key',);
        formData.append('api_secret', '');
        formData.append('timestamp', Date.now() / 1000 | 0);
        formData.append('upload_preset', 'gi7szvel');
    });
    myDropzone.on('success', function (file, response) {
        _this.imagesArr.push(response.public_id);
        console.log('Success! Cloudinary public ID is', response.public_id);
    });

我的页面

HTML:

 <div class="col-sm-12">
            <form action="/file-upload" class="dropzone col-sm-8" id="product-image-drpzone">
                <div class="fallback">
                    <input name="file" type="file" multiple />
                </div>
                <div class="dz-message" data-dz-message><span>Drag & Drop Product images here to upload, or
                     <a class="btn-choose-file btn-link" id="btn-upload">browse.</a>
                </span>

                </div>
            </form>
            <div class="col-sm-4 dropzone-previews">
                <div class="col-sm-6 dz-preview drp-image">
                 <img src="holder.js/100x100">
                </div>
                <div class="col-sm-6 dz-preview drp-image">
               <img src="holder.js/100x100">
                </div>
                <div class="col-sm-12 append_bottom10"></div>
                <div class="col-sm-6 dz-preview drp-image">
               <img src="holder.js/100x100">
                </div>
                <div class="col-sm-6 dz-preview drp-image">
                 <img src="holder.js/100x100">
                </div>
            </div>
        </div>

如何使用 dropzone 将我的图片上传到给定的占位符中?

我尝试使用 dz-preview 指向图像。

【问题讨论】:

  • 可以添加html吗?以这种方式提供答案会更容易。
  • @wallek876 刚刚添加了 html

标签: javascript upload dropzone.js


【解决方案1】:

根据 dropzone 文档,当您选择不同的容器时,它应该具有类 dropzone-previews,但我认为肯定有一些错误,因为 dropzone css 似乎没有针对这个特定的类。

我能想到的唯一解决方法是修改 dropzone css 文件。只需在 dropzone css 文件中搜索所有出现的.dropzone .dz-preview 并替换为.dropzone-previews .dz-preview

然后您可以像这样使用 dropzone 预览更改占位符。

html:

<div class="col-sm-12">
  <form action="upload.php" class="dropzone col-sm-8" id="product-image-drpzone">
    <div class="fallback">
      <input name="file" type="file" multiple />
    </div>
    <div class="dz-message" data-dz-message>
      <span>Drag & Drop Product images here to upload, or
            <a class="btn-choose-file btn-link" id="btn-upload">browse.</a>
          </span>
    </div>
  </form>
  <div id="previews" class="col-sm-4 dropzone-previews">
    <div class="col-sm-6 dz-preview drp-image">
      <img src="holder.js/100x100">
    </div>
    <div class="col-sm-6 dz-preview drp-image">
      <img src="holder.js/100x100">
    </div>
    <div class="col-sm-6 dz-preview drp-image">
      <img src="holder.js/100x100">
    </div>
    <div class="col-sm-6 dz-preview drp-image">
      <img src="holder.js/100x100">
    </div>
  </div>
</div>

js:

Dropzone.autoDiscover = false;

var myDropzone = new Dropzone(document.getElementById('product-image-drpzone'), {
  uploadMultiple: false,
  acceptedFiles: '.jpg,.png,.jpeg,.gif',
  parallelUploads: 4,
  maxFiles: 4,
  url: Urls.products.image_upload,
  previewsContainer: '#previews',
  thumbnailWidth: 100,
  thumbnailHeight: 100,

  init: function() {

    // This adds the bootstrap class col-sm-6 to the dropzone preview
    var classIndex = this.options.previewTemplate.indexOf('dz-preview');
    this.options.previewTemplate = this.options.previewTemplate.slice(0, classIndex) + 'col-sm-6 ' + this.options.previewTemplate.slice(classIndex);

    this.on('addedfile', function(file) {
      $('.drp-image').first().remove();
    });
  }
});

css:

.dropzone-previews .dz-preview {
    margin: 0px;
    margin-bottom: 10px;
}

.dropzone-previews .dz-preview .dz-image {
    width: 100px;
    height: 100px;
    margin-bottom: 15px;
    display: block;
    margin: auto;
}

.drp-image > img{
    display: block;
    margin: auto;
}

你可以看一个演示here

请注意,我只是添加了影响预览的部分代码

【讨论】:

    猜你喜欢
    • 2014-03-13
    • 2021-08-22
    • 1970-01-01
    • 2012-11-16
    • 2016-12-30
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多