Dropzone автоматически вызовет действие вашей формы, как только файлы будут сброшены в этой зоне. Вам не нужна кнопка отправки, чтобы отправить файлы на сервер. Вы можете убедиться в этом, открыв Chrome инспектор DOM браузера и go на вкладке Сеть, затем перетащите файлы в рабочую зону, и вы увидите некоторые запросы на вкладке сети. Ваша форма может выглядеть следующим образом.
<form method="post" action="{{url('/example/fileupload')}}" enctype="multipart/form-data"
class="dropzone" id="dropzone">
@csrf
</form>
Вы можете переименовывать файлы перед отправкой на сервер, но это не обязательно.
<script type="text/javascript">
Dropzone.options.dropzone =
{
maxFilesize: 12,
renameFile: function(file) {
var dt = new Date();
var time = dt.getTime();
return time+file.name;
},
acceptedFiles: ".jpeg,.jpg,.png,.gif",
addRemoveLinks: true,
timeout: 5000,
success: function(file, response)
{
console.log(response);
},
error: function(file, response)
{
return false;
}
};
</script>
На стороне сервера вы можете хранить файлы, как показано ниже.
use App\ImageUpload;
public function fileupload(Request $request)
{
$image = $request->file('file');
$imageName = $image->getClientOriginalName();
$image->move(public_path('images'),$imageName);
$imageUpload = new ImageUpload();
$imageUpload->filename = $imageName;
$imageUpload->save();
return response()->json(['success'=>$imageName]);
}