Dropzone和另一个输入类型文件?

时间:2017-03-10 13:46:00

标签: laravel laravel-5 laravel-5.2 dropzone.js

  <input type="file" name="default_image" id="imgInp" value="{{$property->default_image}}">

<div class="dropzone_upload">
       <div class="dz-message" data-dz-message>
            <span>
              <img src='/assets/home/img/cloud_upload.png'/><br/>DRAG AND DROP IMAGES HERE <br/> <span class='or'>or</span> <br/> <a href='javascript:void(0)' class='upload_images'>UPLOAD IMAGES</a>
              </span>
            </div>                            
      </div>

现在我有一个问题,当我在dropzone中上传默认图像和图像时,它会混合这两个,所以所有内容都放在default_image []。

有任何建议我该如何解决?

当我这样做时,它说图像必须是一种jpeg,bmp,png:

  $this->validate($request,[
             'default_image' => 'mimes:jpeg,bmp,png|max:2000'
          ]);

这是我对dropzone的配置:

Dropzone.options.myDropzone = { // The camelized version of the ID of the form element

    // The configuration we've talked about above
    addRemoveLinks: true,
    previewsContainer: '.dropzone-previews',
    autoProcessQueue: false,
    uploadMultiple: true,
    parallelUploads: 10,
    maxFiles: 10,
    autoDiscover:false,
    paramName:'gallery_images',

    // The setting up of the dropzone
    init: function() {
        var myDropzone = this;

        // First change the button to actually tell Dropzone to process the queue.
        this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {
            // Make sure that the form isn't actually being sent.
            if (myDropzone.getQueuedFiles().length > 0) {

                e.preventDefault();
                e.stopPropagation();
                myDropzone.processQueue();
            }
        });

        // Listen to the sendingmultiple event. In this case, it's the sendingmultiple event instead
        // of the sending event because uploadMultiple is set to true.
        this.on("sendingmultiple", function() {
            console.log('sendingmultiple');
            // Gets triggered when the form is actually being sent.
            // Hide the success button or the complete form.

        });
        this.on("successmultiple", function(files, response) {
            console.log('successmultiple error',response);
            // Gets triggered when the files have successfully been sent.
            // Redirect user or notify of success.
            $("html, body").animate({ scrollTop: 0 }, "slow");
            $("#resultMsg").css('display', 'block').text(response.successMsg);

        });
        this.on("errormultiple", function(files, response) {
          console.log('response error',response);
            // Gets triggered when there was an error sending the files.
            // Maybe show form again, and notify user of error
        });
    }

};

1 个答案:

答案 0 :(得分:0)

您需要使用以下规则:

$this->validate($request,[
    'default_image.*' => 'mimes:jpeg,bmp,png|max:2000'
]);

有关详情:https://laravel.com/docs/5.4/validation#validating-arrays