【发布时间】:2015-12-07 02:41:30
【问题描述】:
我正在使用 Laravel + DropZone 创建一个multiple-upload-drag-&-drop-zone
MyjQuery 调用
if($().dropzone) {
var lstDropZone = jQuery('.dropzone');
lstDropZone.each(function () {
var $this = jQuery(this);
if(!$this.attr('id')) { $this.attr('id', 'dzRand_' + jQuery.guid++); }
var name = !$this.data('name') ? 'arquivo_upload' : $this.data('name');
var size = !$this.data('size') ? 10 : parseInt($this.data('size'));
var url = $this.data('url');
$this.dropzone({
paramName: name, // The name that will be used to transfer the file
maxFilesize: size, // MB
addRemoveLinks: true,
url: url,
parralelUploads: 100,
uploadMultiple: true,
autoProcessQueue: false,
init: function() {
var submitButton = document.querySelector(".btn-submit");
var myDropzone = this; // closure
submitButton.addEventListener("click", function (e) {
console.log("the button is clicked");
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
console.log("after processQueue");
});
this.on("complete", function (file) {
console.log("Added file.");
});
this.on("sendingmultiple", function () {
console.log("sending multiple");
});
this.on("successmultiple", function (files, response) {
console.log("success multiple");
});
this.on("errormultiple", function (files, response) {
console.log("error multiple");
});
}
});
});
}
我的路线.php
Route::post('news-img-upload', ['as' => 'news-img-upload', 'uses' => 'NewsImageController@upload']);
我的刀片.php
{{ Form::open(['url' => route('news-img.store'), 'role' => 'form', 'class' => 'item-form', 'files' => true, 'id' => 'myForm']) }}
{{-- Here goes more fields that will be posted together --}}
<div class="form-group">
{{ Form::label(null, trans('admin.Arquivo'), ['class' => 'control-label required']) }}
<div class="form-controls clearfix">
<div class="dropzone dz-clickable" data-url="{{URL::route('news-img-upload')}}" data-name="arquivo_upload">
<div class="dz-default dz-message" data-dz-message="">
<span>My upload field</span>
</div>
</div>
</div>
</div>
<div class="form-group form-action">
{{ Form::submit(Save, ['class'=>'btn btn-primary btn-submit']) }}
</div>
{{ Form::close() }}
控制台(视频代码)显示信息,就像它可以访问控制器一样
但在网络标签中,它只显示状态302,没有任何返回
我的控制器
public function upload(){
return 'Something isnt fishy';
print_r(Input::all());
print_r(Input::file());
die(' - uploads');
}
这是我第一次使用 DropZone,所以我不知道我应该在这里瞄准什么。
PS:我需要它不是是一个表单,而是一个 div。所以我使用了搜索信息和documentation 来做到这一点。
注意(题外话,但是...):我在第 1427 行将dropzones = document.querySelectorAll(".dropzone"); 更改为dropzones = document.querySelectorAll(".dropzone-auto");,而不是使用Dropzone.autoDiscover = false;,因此我可以在表单中使用autoDiscover。 (这个方法是通用的)
【问题讨论】:
标签: jquery laravel laravel-routing dropzone.js