Input field (uploaden foto) automatisch wissen na verkeerde extensie????

Status
Niet open voor verdere reacties.

Daan987

Gebruiker
Lid geworden
5 aug 2007
Berichten
10
Hallo goedendag ik had even een vraagje over het script hieronder dit is voor het uploaden van een afbeelding.
Dit script heb ik niet zelf geschreven want dat kan ik zeg maar gewoon niet.
Maar nu is het zo als ik een bestand neem anders als de gevraagde extensies (regex) dat is dan dus fout dan laat hij het alert gedeelte na if zien dit is op zich wel goed maar nu had ik een vraag is het nu ook mogelijk om na het if gedeelte een stukje script erbij te schrijven die er automatisch weer voor zorgt dat het input gedeelte weer gewist wordt na het foute bestand????
Want dat blijft er namelijk in staan ook na het wegklikken van het alert gedeelte.
En dan kan je alsnog het bestand uploaden. Jaja???? :confused: :D
Wie kan mij hiermee helpen????? In ieder geval alvast heel erg vriendelijk bedankt.

<html>
<head>
<title>Testseite</title>
</head>
<body>

<script type="text/javascript">
function check_upload(value){
regex = /[jpg|jpeg|JPG|JPEG]$/;
result = regex.test(value);
if(result == 0){
alert("Die Datei muss ein jpg/jpeg-Bild sein");
}
}
</script>
<form name="Testformular" action="" method="post">
<input id='test' name='test' type='file' size='30' onchange="check_upload(this.value);" accept='image/jpeg'>
</form>


</body>
</html>
 
Het is sowieso niet mogelijk om met alleen Javascript bestanden te uploaden naar de server. Hiervoor heb je een serverside scripttaal nodig, zoals PHP. Het javascript dat jij hebt is alleen voor het controleren of het wel een JPEG-afbeelding is die wordt geüpload. Daarnaast kun je met javascript nooit veilig iets controleren, omdat het gewoon heel gemakkelijk te omzeilen is door javascript in de browser uit te zetten. Ook hiervoor kun je dus beter een serverside scripttaal gebruiken.
 
Ja dat klopt ik wist dat je in sommige browers javascript kunt uit zetten maar goed????
Volgens mij ondersteunt firefox het helemaal niet als ik het goed heb.
Maar goed???? Anders iets goeds en bruikbaars kon ik ook niet zo goed vinden.
Ik ben zelf een leek dat betreft en ik kan het zelf niet goed schrijven ik kijk altijd als ik een beetje bruikbaar script kan vinden.
Ik heb ook nog wel andere scripts gevonden zoals deze op deze pagina :
http://javascript.internet.com/forms/upload-filter.html
Maar hier kom ik helemaal niet uit?? en ik weet ook als je een formulier verstuurd dat je een serverside script nodig heb.(zoals PHP)
Daar had ik ook wel een goed script software voor gevonden en dat is hier bij deze link:
http://www.dbmasters.net/forum.php?id=3&tid=151
Maar die laaste link wat ik je nu net gegeven heb in dat script die heeft ook een uploadfunctie maar in dat script (FormM@iler 4.0.4) die heeft geen functie om te kiezen voor welke bestanden toe zijn gestaan om te uploaden.
En vandaar wou ik dan ook het uploadgedeelte iets aanpassen met dat script wat ik
geplaats heb op deze site met dit script kreeg ik het wel voor elkaar om er bij in te bouwen.
Maar dat script bij de eerste link :http://javascript.internet.com/forms/upload-filter.html
Dat lukt me niet ben daar nu wel al 3 dagen mee bezig geweest and that,s verry frustrating.jaja?
En zo heb ik nog wel wat scripts geprobeerd maar tevergeefs.
Vandaar vroeg ik dan ook of het mogelijk was als het uploadveld automatisch werd gewist.
Anders zou ik het zo ook niet weten hoe ik het beste zou kunnen doen??? :confused:
 
Laatst bewerkt:
Lang leve php. ik heb hier een kant-en-klaar PHP script, niet heel lastig te veranderen:

uploadbestand.php:
PHP:
<?  
global $_FILES; 
$filename = $_FILES['userfile']['name'];  
$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "doc";
$allow[4] = "txt";
$allow[4] = "rtf";
$allow[4] = "png";
$allow[4] = "htm";
if ($_POST["newname"]) 
    $uploadname = $_POST['newname']; 
else 
    $uploadname = $_FILES['userfile']['name'];
$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{
    if ($extentie == $allow[$i])
    {
        $extentie_check = "ok";
        $i = count($allow) + 5;
    }
}
if ($extentie_check)
{
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {  
        move_uploaded_file($_FILES['userfile']['tmp_name'], "" . $uploadname);  
        echo "Het bestand is geupload onder de naam: $uploadname"; 
	echo "<BR><BR><a href=# onclick=history.go(-1)>Terug!</a>";
    }
}
else
{
        echo "Error: kan het bestand $uploadname niet uploaden"; 
	echo "<BR><BR><a href=# onclick=history.go(-1)>Terug!</a>";
}  
?>
in je HTML document ergens plaatsen:
HTML:
<form enctype="multipart/form-data" action="*http://SERVER/uploadbestand.php (bijvoorbeeld http://vegras.ve.funpic.org/uploadbestand.php oid*" method="post"> 
Bestand Uploader:
<input type="hidden" name="MAX_FILE_SIZE" value="51200" /> 
<TABLE><TR><TD>
Selecteer een bestand:</TD><TD> <input name="userfile" type="file">
</TD></TR><TR><TD></TD><TD>
<input type="submit" value="upload bestand" />
</TD></TR></TABLE>
</form>


V.:thumb:
 
Laatst bewerkt:
Er zit wel een fout in:
PHP:
$allow[0] = "jpg"; 
$allow[1] = "gif"; 
$allow[2] = "bmp"; 
$allow[3] = "doc"; 
$allow[4] = "txt"; 
$allow[4] = "rtf"; 
$allow[4] = "png"; 
$allow[4] = "htm";
Vier keer die 4, dat kan niet. Dat moet zijn:
PHP:
$allow[0] = "jpg"; 
$allow[1] = "gif"; 
$allow[2] = "bmp"; 
$allow[3] = "doc"; 
$allow[4] = "txt"; 
$allow[5] = "rtf"; 
$allow[6] = "png"; 
$allow[7] = "htm";
Maar aangezien je alleen jpg bestanden hoeft te kunnen uploaden wordt dat:
PHP:
$allow[0] = "jpg"; 
$allow[1] = "jpeg";
Daarnaast is het ophalen van de extentie niet geheel veilig, omdat er ook extenties zijn, langer dan drie tekens. Dit is een betere methode:
PHP:
$pathinfo = pathinfo($uploadname);
$extentie = $pathinfo['extension'];
Verder is het checken of de extentie toegestaan is een beetje omslachtig. Dat kan gewoon met één regeltje:
PHP:
if (in_array($extentie, $allow))
Het verbeterde script:
PHP:
<?   
global $_FILES; 
$filename = $_FILES['userfile']['name'];   
$allow[0] = "jpg"; 
$allow[1] = "jpeg"; 

if ($_POST["newname"]) 
    $uploadname = $_POST['newname']; 
else 
    $uploadname = $_FILES['userfile']['name']; 
$pathinfo = pathinfo($uploadname);
$extentie = $pathinfo['extension']; 

if (in_array($extentie, $allow))
{ 
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {   
        move_uploaded_file($_FILES['userfile']['tmp_name'], "" . $uploadname);   
        echo "Het bestand is geupload onder de naam: $uploadname"; 
    echo "<BR><BR><a href=# onclick=history.go(-1)>Terug!</a>"; 
    } 
} 
else 
{ 
        echo "Error: kan het bestand $uploadname niet uploaden"; 
    echo "<BR><BR><a href=# onclick=history.go(-1)>Terug!</a>"; 
}   
?>
 
aight, leer ik ook nog eens iets :D haha
bedankt jeroen!


V. :thumb:
 
Bedankt voor al de antwoorden maar ik heb even nog geen tijd gehad om er naar te kijken maar dat zal ik zeker snel doen bedankt.:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan