PHP upload script

Status
Niet open voor verdere reacties.

gast0197

Gebruiker
Lid geworden
21 jan 2009
Berichten
139
Beste Mensen,
Ik ben redelijk nieuw met PHP en heb een vraag.
Hoe kan ik in het onderstaande script zorgen dat ik html en php files kan weigeren bij het uploaden?

Eduard

PHP:
<?php 
 $target = "upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ; 

 $ok=1; 
  
 if ($uploaded_size > 350000) 
 { 
 echo "Your file is too large.<br>"; 
 $ok=0; 
 } 
 

 if ($uploaded_type =="html") 
 { 
 echo "Geen PHP bestanden<br>"; 
 $ok=0; 
 } 
 
 if ($ok==0) 
 { 
 Echo "Sorry, het uploaden is mislukt."; 
 } 
 
 else 
 { 
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 { 
 echo "Het bestand ". basename( $_FILES['uploadedfile']['name']). " is succesvol geplaatst."; 
 } 
 else 
 { 
 echo "Sorry, het uploaden is mislukt."; 
 } 
 } 
 ?>
 
Laatst bewerkt:
explode $_FILES['uploaded']['name'] op de punt '.' dan hou je een array over met naam en filetype

Dus
$fileype = explode('.',$_FILES['uploaded']['name']);
$fileNot = array('php','html','asp');
if(in_array(strtolower($fileType[1]),$fileNot)) {
// file niet uploaden
} else {
// file okey
}

niet getest, maar zou zo bijna moeten werken.
ff uit het blote hoofd gedaan
 
Danje

Maar waar moet die code dan staan :eek:

Kun je de hele code geven?
 
Doe bovenaan je pagina, net na de <?PHP
eens dit
echo '<pre>';
print_r($_FILES);
echo '</pre';

dit laat je zien wat er via $_FILES verzonden wordt.
Het is een array, een dat kun je dan ook op die manier opvragen.
 
post je hele script eens, html en php. want nu heb je alleen een verwerk stukje.

En als info, het is helpmij.nl niet scriptsOpVerzoek.nl
Ik wil je helpen dat je php leert begrijpen en maken. Maar ik ga niet mijn tijd voor jou gemak verbruiken. Ik hoop dat je daar begrip voor hebt.
 
Sorry

Ja, ik begrijp je volkomen, maar dít begrijp ik dus echt niet ok: :eek:

HTML:

<form enctype="multipart/form-data" action="upload.php" method="POST">
Kies alstublieft een te uploaden bestand: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form>

PHP:

PHP:
<?php 
  $fileype = explode('.',$_FILES['uploaded']['name']);
  $fileNot = array('php','html','asp');
  if(in_array(strtolower($fileType[1]),$fileNot)) {
  $ok=0;
} else {
 $ok=1;
 $target = "upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ; 
}





 
 //This is our size condition 
 if ($uploaded_size > 350000) 
 { 
 echo "Your file is too large.<br>"; 
 $ok=0; 
 } 
 
 //This is our limit file type condition 
 if ($uploaded_type =="html") 
 { 
 echo "Geen PHP bestanden<br>"; 
 $ok=0; 
 } 
 
 //Here we check that $ok was not set to 0 by an error 
 if ($ok==0) 
 { 
 Echo "Sorry, het uploaden is mislukt."; 
 } 
 
 //If everything is ok we try to upload it 
 else 
 { 
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 { 
 echo "Het bestand ". basename( $_FILES['uploadedfile']['name']). " is succesvol geplaatst."; 
 } 
 else 
 { 
 echo "Sorry, het uploaden is mislukt."; 
 } 
 } 
 ?>
 
doe eerst eens dit.
PHP:
<?PHP 
echo '<pre>';
print_r($_FILES);
echo '</pre';

 $target = "upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ; 
}
 //This is our size condition 
 if ($uploaded_size > 350000) 
 { 
 echo "Your file is too large.<br>"; 
 $ok=0; 
 } 
 
 //This is our limit file type condition 
 if ($uploaded_type =="html") 
 { 
 echo "Geen PHP bestanden<br>"; 
 $ok=0; 
 } 
 
 //Here we check that $ok was not set to 0 by an error 
 if ($ok==0) 
 { 
 Echo "Sorry, het uploaden is mislukt."; 
 } 
 
 //If everything is ok we try to upload it 
 else 
 { 
 if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 { 
 echo "Het bestand ". basename( $_FILES['uploadedfile']['name']). " is succesvol geplaatst."; 
 } 
 else 
 { 
 echo "Sorry, het uploaden is mislukt."; 
 } 
 } 
 ?>
Dan kun je eerst zien wat er voor info verzonden wordt als je een file upload.
En dan nog iets, Je moet niet gaan controleren op files die je niet toestaat, maar op files die wel ge-upload mogen worden.
want door 2 files te verbieden, laat je heel veel(echt super veel) files die dan wel okey zijn.
 
zoals je zult zien is bv.
bestaat $uploaded_size niet.
$_FILES['uploaded']['size'] bestaat wel, dat is de grootte van het ge-uploaded file
dus als je boven aan je pagina
$uploaded_size = $_FILES['uploaded']['size'] ; zet
dan klopt je script alweer een stukkie beter
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan