login  Naam:   Wachtwoord: 
Registreer je!
 Forum

uploaden

Offline roy - 08/11/2004 00:17 (laatste wijziging 08/11/2004 16:23)
Avatar van royPHP gevorderde hallo,
ik heb het volgende upload script.
  1. <?
  2. $query_nhon = mysql_query("SELECT * FROM tacx") or die(mysql_error());
  3. $npics = mysql_num_rows($query_nhon)or die(mysql_error()); // AANTAL FOTO'S
  4. $max = $npics; //MAXIMALE FOTOGETAL
  5. $id = $max+1; //VOLGEND GETAL
  6. $toegelaten = "im ca";
  7. $toegelaten = explode(" ",strtolower($toegelaten));
  8. //toegelaten bestandsextensies(in een array), als je er geen wilt, comment je deze twee lijnen uit!
  9. $locatie = "/"; //zie info hierboven
  10. $maxgrootte = "1000"; //aantal Kilobytes (1000 KB != 1MB!!!!! onthoud dit!!!, omdat ik lui ben, beweer ik dat het wel zo is ;)
  11. //als je je afvraag vanwaar dit komt, in 1 byte gaan er 8 bits, in 2 kilobyte, gaan er dus 1600 bits enzovoorts
  12. $maxgrootte .= "000"; //ik voeg er 3 nulletjes aan toe, om er kilobytes van te maken (denk ik, ik HAAT bestandsgrootes op computers)
  13. $geldig_bestand = false;
  14. //het bestand moet juist zijn, indien het uit de temporary dir naar de uiteindelijke locatie bewaard moet worden
  15.  
  16.  
  17.  
  18. if ($REQUEST_METHOD == 'POST') {
  19. //heb ik al een suitgelegd
  20. if($file) {
  21. //logisch
  22. $image = $HTTP_POST_FILES[file][name];
  23. // Filename + extensie van geuploade bestand
  24. //$grootte = $HTTP_POST_FILES[file][size];
  25. //geeft de grootte in een array, [0] = breedte en [1] = hoogte
  26. $extentie = substr($image, -3);
  27. //neem de extensie van het bestand
  28.  
  29. mysql_query("INSERT INTO tacx (id,name,mail,country,Dd,Dm,Dy,Th,Tm,Ts,terrein,parcours,image,afstand) VALUES ('" . $id . "','" . $name . "','" . $mail . "','" . $country . "','" . $Dd . "','" . $Dm . "','" . $Dy . "','" . $Th . "','" . $Tm . "','" . $Ts . "','" . $terrein . "','" . $parcours . "','" . $image . "','" . $afstand . "')") or die(mysql_error());
  30.  
  31.  
  32. if ($grootte <= $maxgrootte) {
  33. //indien de bestandsgrootte al niet klopt, is het onnuttig van de rest te controleren
  34. for ($i=0;$i<sizeof($toegelaten);$i++) {
  35. //herhaal zoveel keer als er toegelaten bestandsextensies zijn
  36. if ($extensie = $toegelaten[$i]) {
  37. //$afmetingen = getimagesize($image);
  38. //if ($plaatje[0] <= $width || $plaatje[1] <= $height) //gn accolade, want mr 1 opdracht!
  39. $geldig_bestand = true; //aangezien ik gn accolade gebruik gebruik ik geen tab vooraan, dit zou alles onduidelijk maken!
  40. //alle voorwarden gaven direct een true, en dus het bestand is door alle beproengen geraakt
  41. break;
  42. //fuck die for loop, het bestand is toch al goed
  43. //als ik dit niet zet, zal het script nog x keren door de lus gaan, wat de uitvoer een paar microseconden vertraagt
  44. //en dus ook de server ook een beetje meer belast! probeer dus altijd zo braaf mogelijk te zijn voor de server
  45. }
  46. }
  47. }
  48.  
  49.  
  50.  
  51. if ($geldig_bestand = true)
  52. copy($file, $locatie . $image);
  53. //copieer van het temporary dir naar de uiteindelijke dir!
  54. $plaats = "";
  55. echo "";
  56. exit();
  57. //stoppen, anders toot hij het formuliertje!
  58. ?>



Het werkt fantastisch, maar de te uploaden bestanden bevatten ' dit soort aanhalingstekens... en op 1 of andere manier gaat dat fout..
dus een bestand als: Capricorn-'Afstand 10 Km'-DIDIER BOZ(Tacx) 07-10-2003-1.im

In de database zet hij de bestandsnaam goed, maar in de map waar het bestandje komt te staan veranderd hij de naam tot een stukje na de aanhalingstekens..

hoe kan ik dit voorkomen??

met vriendelijke groet,
Roy

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s