var file = $('#file').prop('files')[0];
var extension = file['name'].replace(/^.*\./, '');
if (extension != 'txt') {
alert('Only text files are allowed (.txt).');
return false;
}
@Inter Kode
Dit is alleen een txt file, wat mist er in mijn code dat jquery ziet dat het een file is en deze vergelijkt?
Ik denk dat het probleem in de variabele zit, ik heb daar .val() gebruikt maar er is helemaal geen value aanwezig.
Er moet dus iets staan dat het om een file gaat, maar wat?
Uploadvelden zijn deels het domein van het OS/de browser geloof ik? Daar kom je dus niet zo makkelijk aan. Daarnaast kun je dit soort controles makkelijk omzeilen door JavaScript uit te schakelen.
Ik zou eerder inzetten op een serverside oplossing.
De vraag is ook, wat probeer je uiteindelijk te bereiken? Dat er enkel afbeeldingen (van een zeker type) worden geupload? Dan zou ik daar op controleren. En niet via extensie, want dat is een slechte graadmeter.
Wanneer ik blaat.txt hernoem naar blaat.jpg dan upload elke (?) browser dat vrolijk als image/jpeg. Je zult zo'n bestand dus net wat verder aan de tand moeten voelen dan enkel de extensie. Bijvoorbeeld met getimagesize() ofzo. Als deze false retourneert weet je in ieder geval vrij zeker dat je niet met een afbeelding van doen hebt.
Dank voor de heldere reactie :)
Wat ik wil bereiken is dat jquery voordat er gepost word al een tip geeft over de extentie.
Bij de text input heb ik mijn tooltips helemaal klaar alleen met deze input "type file" wil het niet lukken.
Wat zou een oplossing kunnen zijn zodat er een true false ontstaat?
Het gaat om jpg, png, tiff en gif.
De eind controle komt later bij de submit ;)