Witam, piszę pewna aplikację pod system CMS Joomla i mam następujący problem. Aplikacja musi mieć w pewnym miejscu przesyłanie plików.
Plik projekty.js (tutaj znajduje się funkcja która poprzez ajax ma przekazywać plik do obsłużenia w PHP). Wykonanie ajax ma się odbywać natychmiast po umieszczeniu pliku w input file.
//wysyłanie pliku
$('table.materials').on('change', 'input[type=file]', function(){
const formData = new FormData();
formData.append('file', this.files[0]);
$.post(
'index.php',
{
option: 'com_projekty',
task: 'project.placeFile',
format: 'json',
file: formData,
tmpl: 'raw'
},
'json'
).done((response) => {
return response;
});
})
Plik PHP do obsługi pliku
function placeFile() {
echo "Test";
var_dump($_FILES);
}
Konsola javascript po dodaniu pliku w input text zwraca mi następujący błąd:
jquery-3.4.1.min.js:2 Uncaught TypeError: Illegal invocation
at i (jquery-3.4.1.min.js:2)
at qt (jquery-3.4.1.min.js:2)
at qt (jquery-3.4.1.min.js:2)
at Function.k.param (jquery-3.4.1.min.js:2)
at Function.ajax (jquery-3.4.1.min.js:2)
at Function.k.<computed> [as post] (jquery-3.4.1.min.js:2)
at HTMLInputElement.<anonymous> (projekty.js:741)
at HTMLTableElement.dispatch (jquery-3.4.1.min.js:2)
at HTMLTableElement.v.handle (jquery-3.4.1.min.js:2)
Czy mógłby ktoś dać jakieś wskazówki, ewentualnie rozwiązanie w jaki sposób powinienem przekazać plik do funkcji placeFile() w PHP?