2015-06-12 106 views
0

問題:表單後驗證圖像失敗。 錯誤:圖片必須Dropzone Laravel表單驗證錯誤?

在我的驗證規則,我設置:

'images' => 'required|image', 

在我的形式我已經建立了以下內容:

<div class="panel panel-default"> 

    <div class="panel-heading">Add photos</div> 

    <div class="panel-body"> 

     <div id="myDropzone" class="dropzone"> 

     </div> 

    </div> 

</div> 

我不知道怎麼樣插入文件上傳表單域?我期待驗證者拋出錯誤。但關於dropzone,我不知道該怎麼做。

這是我的javascript發起懸浮窗

Dropzone.autoDiscover = false; 

$('#myDropzone').dropzone({ 
    url: 'dashboard/add/products', 
    uploadMultiple: true, 
    maxFiles: 10, 
    acceptedFiles: '.jpg, .jpeg', 
    autoProcessQueue: false, // myDropzone.processQueue() to upload dropped files 
    addRemoveLinks: true, 
    dictRemoveFile: "Remove image" 
}); 

我的Ajax請求發佈形式是這樣的:

var form = $(this); 

var formdata = new FormData(form[0]); 

form.find('div.alert').remove(); 

e.preventDefault(); 

var action = $(this).attr('action'); 

var method = $('input[name=_method]').val() || 'POST'; 

$.ajax({ 
    type: method, 
    action: action, 
    data: formdata, 
    processData: false, 
    contentType: false, 
    dataType: 'json', 
    success: function(data) { 
     console.log(data); 
    }, 
    error: function(data) { 
     var errors = data.responseJSON; 

     $.each(errors, function(key, value) { 
      console.log(key + ' - ' + value); 
      $('#' + key).after('<div class="alert alert-danger">' + value + '</div>'); 
     }); 

    } 

}); 

感謝您閱讀

+0

並不真正相關,但可能以供將來參考是有用的,你是用laravel框架發佈,你的csrf標記在哪裏?你把它放在標題中嗎? –

+0

這是一個隱藏的輸入,但它被傳遞。 – arkhamDev

回答

0

懸浮窗設置文件字段「文件'默認。

您可以通過修改您的.dropzone()函數,這個改變:

Dropzone.autoDiscover = false; 

$('#myDropzone').dropzone({ 
    url: 'dashboard/add/products', 
    paramName: "images", 
    uploadMultiple: true, 
    maxFiles: 10, 
    acceptedFiles: '.jpg, .jpeg', 
    autoProcessQueue: false, // myDropzone.processQueue() to upload dropped files 
    addRemoveLinks: true, 
    dictRemoveFile: "Remove image" 
}); 

你可以在這裏瀏覽他們documementation:http://www.dropzonejs.com/#configuration