I’m trying to upload photos via Dropzone but when I try they don’t send. The function dd($request->file(‘file)) is not executed because file(‘file’) is null, and I don’t know why. Here is my script:
<script>
Dropzone.options.fileUpload = {
url: '{{route('admin.product.form')}}',
addRemoveLinks: true,
maxFilesize: 5,
acceptedFiles: ".jpg, .jpeg, .png",
dictRemoveFile: "Remove",
accept: function(file) {
let fileReader = new FileReader();
fileReader.readAsDataURL(file);
fileReader.onloadend = function() {
let content = fileReader.result;
$('#file').val(content);
file.previewElement.classList.add("dz-success");
}
file.previewElement.classList.add("dz-complete");
}
}
</script>
Route:
Route::prefix('admin')->name('admin.')->middleware('admin')->group(function () {
Route::get('/product', [ProductController::class, 'index'])->name('product');
Route::post('/product', [ProductController::class, 'doProduct'])->name('product.form');
});
Controller:
public function doProduct(Request $request)
{
if ($request->hasFile('file')) {
$file = $request->file('file');
dd($file);
$filename = time() . '_' . $file->getClientOriginalName();
$file->storeAs('uploads', $filename); // Записване на файла в директория 'uploads'
}
echo 'hello';
}
View:
<div class="modal-body">
<h5 class="modal-title">Variants</h5>
<div class="mb-8">
<div class="dropzone dropzone-file-area" id="fileUpload">
<div class="dz-default dz-message">
<h3 class="sbold">Drop files here to upload</h3>
<span>You can also click to open file browser</span>
</div>
</div>
</div>
</div>