main
Ilham Wara Nugroho 2025-09-12 09:53:35 +07:00
parent 1dd624ba25
commit 7aad2e583f
2 changed files with 40 additions and 41 deletions

View File

@ -45,7 +45,6 @@ class AjaxController extends Controller
} }
public function uploadTempImage(Request $request) public function uploadTempImage(Request $request)
{ {
dd($request->all());
$request->validate([ $request->validate([
'file.*' => 'required|file|mimes:png,jpg,jpeg|max:5120', 'file.*' => 'required|file|mimes:png,jpg,jpeg|max:5120',
]); ]);

View File

@ -206,50 +206,50 @@
}); });
const myDropzone = new Dropzone(".dropzone", { const myDropzone = new Dropzone(".dropzone", {
url: "{{ url('uploadTempImage') }}", // URL ke controller kamu url: "{{ url('uploadTempImage') }}", // URL ke controller kamu
method: "POST", method: "POST",
xhrFields: { // xhrFields: {
withCredentials: true // withCredentials: true
}, // },
headers: { headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'), 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
'X-Requested-With': 'XMLHttpRequest' 'X-Requested-With': 'XMLHttpRequest'
}, },
// maxFilesize: 1, // dalam MB // maxFilesize: 1, // dalam MB
acceptedFiles: ".png,.jpg,.jpeg", acceptedFiles: ".png,.jpg,.jpeg",
paramName: "file", // nama input file yang dikirim ke controller paramName: "file", // nama input file yang dikirim ke controller
params: { params: {
_token: document.querySelector('meta[name="csrf-token"]').getAttribute('content') _token: document.querySelector('meta[name="csrf-token"]').getAttribute('content')
}, },
uploadMultiple: true, uploadMultiple: true,
init: function() { init: function() {
this.on("successmultiple", function(files, response) { this.on("successmultiple", function(files, response) {
console.log('Upload success multiple:', response); console.log('Upload success multiple:', response);
const fileList = document.getElementById('file-list'); const fileList = document.getElementById('file-list');
response.files.forEach(function(fileInfo) { response.files.forEach(function(fileInfo) {
const li = document.createElement('li'); const li = document.createElement('li');
li.innerHTML = `<a>${fileInfo.filename}</a>`; li.innerHTML = `<a>${fileInfo.filename}</a>`;
fileList.appendChild(li); fileList.appendChild(li);
// Tambahkan ke hidden input kalau perlu // Tambahkan ke hidden input kalau perlu
const hiddenInput = document.createElement('input'); const hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden'; hiddenInput.type = 'hidden';
hiddenInput.name = 'input_upload_files[]'; hiddenInput.name = 'input_upload_files[]';
hiddenInput.class = 'removeFormKriteria'; hiddenInput.class = 'removeFormKriteria';
hiddenInput.value = fileInfo.filename; hiddenInput.value = fileInfo.filename;
var elem = '<input type="hidden" name="input_upload_files[]" value="'+fileInfo.filename+'" class="removeFormKriteria uploadedFiles is-required">'; var elem = '<input type="hidden" name="input_upload_files[]" value="'+fileInfo.filename+'" class="removeFormKriteria uploadedFiles is-required">';
$('.changeForm').append(elem); $('#form').append(elem);
});
}); });
});
this.on("error", function(file, response) { this.on("error", function(file, response) {
console.error('Upload error:', response); console.error('Upload error:', response);
toastr.error(response, 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'}); toastr.error(response, 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
this.removeFile(file); this.removeFile(file);
}); });
} }
}); });
</script> </script>
@endsection @endsection