Ik wil bestanden uploaden vanaf form.
Tot zover geen problemen.
Na alle doorlopen checks moet het bestand overgezet worden.
En dat lukt niet.

In de php.ini (gedeelde server) staan de uploads op 'on'.
De map rechten al op 777 gezet.
De tmp is ook te beschrijven.
De gevormde link naar de map klopt.
Maar blijft komen met de melding "niet verstuurd".
Iemand die advies heeft?


if ($uploadOk == 0) {
    echo "Sorry, het bestand is niet verzonden.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $target_file)) {
        return "Het bestand ". basename( $_FILES["userfile"]["name"]). " is verstuurd.";
    } else {
       return "Het bestand ". basename( $_FILES["userfile"]["name"]). " is niet verstuurd.";
    }
}
En heb je ook het enctype="multipart/form-data"in je formulier?
En wat zegt: $_FILES["userfile"]["error"] ?
Zie ook deze link met uitleg.

Ikzelf raad aan om goede foutafhandeling hier in te bouwen, en bij voorkeur giet je de hele upload-procedure in een class. Ikzelf gebruik de open-source class van Verot.net.
Works like a charm!
De form heb ik inderdaad multipart staan.
Maar zal het voor de zekerheid nog eens checken.
Heb het zowel op de server opgeslagen als offline.
Een gedeelte van die link heb ik gebruikt om te kijken of de tmp beschrijfbaar is.

$target_file staat de volledige link met de naam van het bestand.

Zet eens een print_r(error_get_last()); boven je foutmelding (return). Wat komt daar uit?
Misschien kun je hier wat mee Rob:

Array ( [type] => 2 [message] => move_uploaded_file(): Unable to move '/tmp/phpZj4wWv' to 'http://www.pctraverse.nl/uploaded_files/activiteit/noordkade2.jpg' [file] => /home/pctr2993/pctraverse.nl/www/Inlog/inlog2/include/processes.php [line] => 173 )
Je had gelijk Arien...
Was toch de verwijzing.
Ik had de dir verkeerd verwezen.
Het werkt nu...
Bedankt voor alle adviezen...


$target_dir  = realpath($_SERVER[ 'DOCUMENT_ROOT' ]) . "/uploaded_files/";

Reageren