Op drie verschillende manieren heb ik geprobeerd het aan de praat te krijgen zonder succes.
Dit is mijn code op het moment:
<script>
$(function () {
'use strict';
var url = window.location.hostname === 'site.nl/demo/server/php/' ?
'//site.nl/' : 'demo/server/php/';
$('#fileupload').fileupload({
url: url,
dataType: 'json',
formData: [
{ name: 'custom_dir', value: '/fileupload/<?PHP echo $_GET['bedrijf'] ?>/<?PHP echo $_GET['alias'] ?>/' },
{ name: 'cat_id', value: '<?PHP echo $gtc['id']; ?>'},
{ name: 'name', value: $( "#filename" ).val()},
],
add: function (e, data) {
data.context = $('<button/>').text('Uploaden starten').addClass('font-15 btn btn-secondary btn-lg waves-effect btnadd fullwidth')
.appendTo('.uploadbutton')
.click(function () {
data.submit();
});
},
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
});
</script>
Het gaat om dit stuk:
formData: [
{ name: 'custom_dir', value: '/fileupload/<?PHP echo $_GET['bedrijf'] ?>/<?PHP echo $_GET['alias'] ?>/' },
{ name: 'cat_id', value: '<?PHP echo $gtc['id']; ?>'},
{ name: 'name', value: $( "#filename" ).val()},
],
De twee bovenstaande waardes worden netjes gepost maar de onderste blijft leeg, dat ziet er zo uit:
------WebKitFormBoundary59O7sCnGuJdp2LnV
Content-Disposition: form-data; name="custom_dir"
/fileupload/nieuw_bedrijf/inkoop_van_diensten/
------WebKitFormBoundary59O7sCnGuJdp2LnV
Content-Disposition: form-data; name="cat_id"
95
------WebKitFormBoundary59O7sCnGuJdp2LnV
Content-Disposition: form-data; name="name"
------WebKitFormBoundary59O7sCnGuJdp2LnV
Content-Disposition: form-data; name="files[]"; filename="198970050.pdf"
Content-Type: application/pdf
------WebKitFormBoundary59O7sCnGuJdp2LnV--
Naast bovenstaande manier heb ik het ook zo geprobeerd:
var filename = $( "#filename" ).val();Met daaronder dan:
{ name: 'name', value: filename},Ook dit blijft leeg.
Ten slotte probeerde ik het zo:
var input = $('#filename');
//met dan daaronder
{ name: 'name', value: input.val()},
Wat doe ik verkeerd? Het vreemde is, als ik mijn input veld een standaard waarde geef, dan werkt het wel. Maarja ik wil natuurlijk dat mensen zelf de naam aan kunnen geven ipv dat dit vooraf vast staat...