• Beste leden van CP,


    Ik heb een opdracht voor school en heb een probleempje met mijn script.
    Hij upload het bestand niet naar de map.
    En in de database komt array te staan.


    DIt is het script:



    Wat doe ik verkeerd het is een klein foutje maar wat kan het zijn?

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Ik weet niet zeker of dit werkt, heb het even overnieuw geschreven. Heb het niet kunnen testen namelijk


    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

  • Jopitan, dit stukje code vind ik beetje overbodig:

    PHP
    isset($_FILES['Bestand']) ? $bestand = $_FILES['Bestand'] : $bestand = '';


    Schrijf het dan teminste om het manier dat je maar 1 keer variabel aanmaak en dan vult met waarde1 of waarde2 ;)


    Dus:

    PHP
    $bestand = isset($_FILES['Bestand']) ? $_FILES['Bestand'] : '';


    En zo geldt dat ook voor die andere waardes.


    Voor de rest je kijkt of die gevuld is en zo ja laat die hem staan en anders vul je hem met niks. Kan je beter daar gelijk een if en else constructie om heen zetten, aangezien je nu dubbele check doet.


    PHP
    if(empty($naam) || !isset($naam) {


    In je database zet je een tmp_name in en niet een name en een pad van het bestand, hierdoor krijg je de verkeerde waardes te zien.


    Voorbeeld voor het uploaden:

    PHP
    $uploads_dir = '/uploads';
    foreach ($_FILES["Bestand"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["Bestand"]["tmp_name"][$key];
            $name = $_FILES["Bestand"]["name"][$key];
            move_uploaded_file($tmp_name, "$uploads_dir/$name");
        }
    }


    Eerst wordt heel het bestand geopend en doorgelopen, hij zoekt hier naar een error, wanneer deze ok staat zal hij hem uploaden naar de map met het bestand. Je kan dit ook testen zonder je database te gebruiken, zodat je weet of het werkt.


    Jopitan geeft ook slim in zijn code de mysql pas vrij als er geupload is, dit is dan ook zeker een tip om te gebruiken . ;)

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Dat laatste stukje is alleen voor als je meerdere bestanden gaat uploaden, wat hier niet het geval is. Als je toch meerdere bestanden zou willen uploaden dan moet je ook in de foreach een query uitvoeren met het toevoegen van een rij.
    Of je moet de bestanden in een losse tabel zetten die gekoppeld staan met de rij met de namen enzov. Dit voorkomt dan dubbele rijen met dezelfde naam enzovoort.


    PHP
    if(empty($naam) || !isset($naam) {


    kan gewoon

    PHP
    if(empty($naam)) {


    zijn aangezien je op het begin al checkt of hij wordt geset of niet. Als dit niet zo is wordt hij standaard empty ingevuld.

    Kast: HAF922 | CPU: I7-930 @ 4.0GHz | CPU Cooler: Noctua NH-D14 | HDD0: Crucial M4 128GB, HDD1: Kingston SSD 64GB, HDD2/3: WD Black & Green 1TB, HDD4: Seagate 1.5TB | Mem: Kingston HyperX 12GB @ 1600MHz | Graphics: Crossfire HD6970 | Res: 5760x1080

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!