Ik heb de volgende jquery script die via ajax een bestand door stuurt naar upload.php
jquery.js
<?php // Jquery
$('#cl_Prompt:file').change(function () {
var fileObject = this.files[0];
var fileName = $(this).val().replace('C:\\fakepath\\', '');
var fileExtention = fileName.replace(/^.*\./, '').toLowerCase();
$('#cl_Upload').on('click', function() {
var FileData = new FormData();
FileData.append('file', fileObject);
FileData.append('token', token); // < Werkt niet
$.ajax({
url: 'api/upload',
type: 'post',
dataType: 'json',
data: FileData,
cache: false,
contentType: false,
processData: false,
success: function(response){
console.log(response);
}
});
});
});
?>
Upload.php
<?php
if (empty($_SESSION['token']) || $_SESSION['token'] != $_POST['token']) {
echo "Error"
exit()
}
if(move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name'])) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
?>
Zonder de token check werkt het prima, nu heb ik heel mijn system ingesteld om deze token te valideren.
https://i.imgur.com/KgHL7WJ.png
Zoals je ziet in de screenshot word de token parameter verkeerd mee gegeven
"Content-Disposition: form-data; name="token"
Hoe kan ik dit oplossen om $_POST['token'] te lezen samen met het bestand?
Alvast bedankt
1.884 views