8768 sujets

Développement web côté serveur, CMS

Bonjour à tous
Cela fait pas mal d'années que j' n'ai plus utilisé le chargement de fichier par formulaire.
Voici ce que contient la variable $_FILES

Array
(
    [myfile] => Array
        (
            [name] => romain.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phpKJc3Fr
            [error] => 0
            [size] => 18552
        )
)

Je veux recopier ce fichier dans le répertoire /workFiles
j'ai écrit

$sTempName = $_FILES['myfile']['tmp_name'];
$root = $_SERVER['DOCUMENT_ROOT'];
$sFileName = $_FILES['myfile']['name'];
$workFilePath = "$root/workFiles/$sFileName";
move_uploaded_file($sTempName, $workFilePath);

Aucune erreur signalée, mais le fichier n'est pas transféré dans le répertoire /workFiles
Je soupçonne une erreur dans l'utilisation de move_uploaded_file mais je ne trouve rien.
Une idée?
Modifié par PapyJP (08 Jun 2019 - 12:27)
Bonjour,
La fonction move_uploaded_file retourne true ou false? Si elle retourne true, c'est peut-être le CHMOD du dossier workFiles qui bloque (il est bien en 705?)
Sinon, je vois pas...
Modérateur
Cela semble être sur un serveur *UNIX, il faut aussi voir qui est le propriétaire du dossier. Si ce n'est pas le même que celui d'apache il faut des permissions plus élevées que 705.
Salut

Oui cette méthode te renvoit un bool.. donc à tester pour être sûr.

if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) {

echo 'Problème, pour plus d infos : '.print_r($_FILES);
}

Mais bon, ça te dire pas l'erreur ..
Modifié par JENCAL (11 Jun 2019 - 13:55)
Désolé pour le retard de ma réponse, je suis débordé par d'autres tâches en ce moment
J'ai fait comme tu le proposes, ça donne:

Problème, pour plus d'infos : Array
(
    [myfile] => Array
        (
            [name] => jpmoularde.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phphjSrCp
            [error] => 0
            [size] => 3223
        )

)

effectivement, ça ne m'avance pas beaucoup.
Je m'y remets dès que j'ai le temps.
Modifié par PapyJP (13 Jun 2019 - 20:02)
Hello, $_FILES["files"]["tmp_name"] est un tableau.

foreach ($_FILES["files"]["tmp_name"] as $key => $tmp_name) {
//$tmp_name = /tmp/phphjSrCp
//$_FILES["files"]["name"][$key] = jpmoularde.jpg
}


@+