Dropzone.js всегда автоматически загружает файлы. Невозможно установить параметры для dropzone #id - Laravel - Voyager - Dropzone.js
Я хочу создать в своем веб-приложении Dropzone для загрузки изображений и манипулирования ими с помощью ImageMagick. Моя дропзона всегда автоматически загружает все изображения и выдает ошибку "объект-объект" при предварительном просмотре изображений в дропзоне. Загрузка на сервер работает, но я хочу добавить Dropzone.options.myAwesomeDropzone в мою dropzone, чтобы загружать изображения, когда я отправляю кнопку, потому что я также хочу отправлять данные из формы во время загрузки.
Вот как я реализовал это в представлении:
$ <div class="dropzone" id="my-awesome-dropzone">
.Js в представлении (иначе это не работает)
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.4.0/dropzone.js"></script>
<script type="text/javascript">
var baseUrl = "{{ url('/') }}";
var token = "{{ csrf_token() }}";
var myDropzone = new Dropzone("div#my-awesome-dropzone", {
url: baseUrl + "/upload",
params: {
_token: token
}
});
Мой контроллер:
public function upload()
{
$input = Input::all();
$rules = array(
'file' => 'image|max:3000',
);
$validation = Validator::make($input, $rules);
if ($validation->fails()) {
return Response::make($validation->errors->first(), 400);
}
$destinationPath = 'uploads'; // upload path
$extension = Input::file('file')->getClientOriginalExtension(); // getting file extension
$fileName = rand(11111, 99999) . '.' . $extension; // renameing image
$upload_success = Input::file('file')->move($destinationPath, $fileName); // uploading file to given path
if ($upload_success) {
return Response::json('success', 200);
} else {
return Response::json('error', 400);
}
}
Я надеюсь, что кто-то может помочь, я искал в Интернете несколько часов, но не смог найти то, что решило бы мою проблему. Существуют сотни решений, которые работают для всех, кроме меня....
С наилучшими пожеланиями
1 ответ
Если вы посмотрите на документы Dropzone, он говорит, что в конфигурации вы должны установить опору autoProcessQueue
ложно, а затем позвонить myDropzone.processQueue()
Так что попробуйте что-нибудь с этим:
var myDropzone;
var token = "{{ csrf_token() }}";
var baseUrl = "{{ url('/') }}";
$(document).ready(function(){
myDropzone = new Dropzone("div#my-awesome-dropzone", {
url: baseUrl + "/upload",
params: {
_token: token
// other fields, here you can also pass a function and have the function return the fields
name: $("#name").val()
},
autoProcessQueue:false,
});
})
$("#yourButtonId",function(e){
e.preventDefault();
myDropzone.processQueue();
});