Ajax File Upload met Parameters
Inter Kode
03/12/2015 17:09:43Ik heb de volgende jquery script die via ajax een bestand door stuurt naar upload.php
jquery.js
Upload.php
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
jquery.js
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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);
}
});
});
});
?>
$('#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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?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.";
}
?>
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
Er zijn nog geen reacties op dit bericht.