OVH Cloud OVH Cloud

problm upload

2 réponses
Avatar
osh
le contexte:
en admin, on met a jour une fiche pour laquelle on peut joindre un ficher.
- le nom du fichier alimente une base de données (ca marche).
et
- ce fichier doit evidemment s'uploader sur le serveur.(ca ca marche pas)
a l'orignine le script prevoyait de creer le dossier (files) de reception si
celui ci n'existait pas..
Or il existe.
voici le script que je n'arrive pas à manipuler de maniere à ignorer le
mkdir, à permettre le move_uploaded_file.
J'ai ce message d'erreur :
"Warning: Wrong parameter count for mkdir() in
/easyonline/www/www.prositting.com/htdocs/admin/Admin.php on line 111
Archivage du document impossible dans
/easyonline/www/www.prositting.com/htdocs/admin/files"
et meme en otant la fonction mkdir jai ensuite
Warning: Unable moved ......
/easyonline/www/www.prositting.com/htdocs/admin/Admin.php on line 111
Archivage du document impossible dans
/easyonline/................................/htdocs/admin/files.
*****************
voici le code, si quelqu'un peut et veut m'aider, je l'en remercie (suis au
bord de la crise de nerf!!) ;o)

/*******insertion du nom du fichier dans la base*************/
foreach ($_FILES as $file) #94
{
$file_name = $file["name"];
if ($file["size"] <= 0)
continue;
$sql = "INSERT content_download (content_id, file_name)
VALUES ($content_id, '$file_name')";
mysql_query($sql,$cxn); #103
/*******upload des fichiers*******************************/
$dest_dir =
"/easyonline/................................../htdocs/admin/files";
$dest_file = "$dest_dir.DIRECTORY_SEPARATOR.$file_name";

if(!file_exists($dest_dir)) #107
{
if(!mkdir($dest_dir, 0700, TRUE))
die ("Archivage du document impossible dans $dest_dir");
}

if (!file_exists($dest_file)) #113
{
if (!move_uploaded_file($file["tmp_name"], $dest_dir))
die ("Archivage du document impossible dans $dest_dir");
}
/**********************************************************/
me repondre à A-ENLEVER-osh@ifrance.com

2 réponses

Avatar
P'tit Marcel
a l'orignine le script prevoyait de creer le dossier (files) de reception si
celui ci n'existait pas..
Or il existe.

J'ai ce message d'erreur :
"Warning: Wrong parameter count for mkdir() in
/easyonline/www/www.prositting.com/htdocs/admin/Admin.php on line 111
Archivage du document impossible dans
/easyonline/www/www.prositting.com/htdocs/admin/files"
et meme en otant la fonction mkdir jai ensuite
Warning: Unable moved ......
/easyonline/www/www.prositting.com/htdocs/admin/Admin.php on line 111
Archivage du document impossible dans
/easyonline/................................/htdocs/admin/files.


est-ce que ton hébergeur aurait par hasard activé les fonctions safe
mode ou open_basedir ? pour vérifier, phpinfo(); est ton amie.



foreach ($_FILES as $file) #94
{
$file_name = $file["name"];
if ($file["size"] <= 0)


pour plus de sécurité, j'ajouterai ici comme condition :
if (($file["size"] <= 0) or !is_uploaded_file($file["tmp_name"])


continue;
$sql = "INSERT content_download (content_id, file_name)
VALUES ($content_id, '$file_name')";
mysql_query($sql,$cxn); #103


ici j'ajouterai un test de succès de l'opération :
mysql_query($sql,$cxn) or die("mise à jour MySQL impossible");


/*******upload des fichiers*******************************/
$dest_dir > "/easyonline/................................../htdocs/admin/files";


Si le serveur est sous Windows, alors les séparateurs devraient être

$dest_file = "$dest_dir.DIRECTORY_SEPARATOR.$file_name";


ce serait plus classe comme ça :
$dest_file = $dest_dir . DIRECTORY_SEPARATOR . $file_name;


if(!mkdir($dest_dir, 0700, TRUE))
die ("Archivage du document impossible dans $dest_dir");


pour éviter le message, le mieux serait de créer le répertoire
/easyonline/................................../htdocs/admin/files
et de donner les droits d'écriture dans ce répertoire à l'utilisateur
utilisé par le serveur web (qui est souvent "nobody").


if (!file_exists($dest_file)) #113


? donc on ne peut pas modifier un document une fois qu'i a été téléchargé ?


if (!move_uploaded_file($file["tmp_name"], $dest_dir))


ça me semble pas bon, il faudrait mieux :
if (!move_uploaded_file($file["tmp_name"], $dest_file))



me repondre à


ça me semble pas bon, il faudrait mieux :
je sais qu'Usenet est un espace collaboratif et me ferai un plaisir de
consulter vos articles en réponses sur le forum.


eça
--
P'tit Marcel

Avatar
osh
merci pour t entre penché avec autant d'attention. Toutes tes remarques ont
été très pertinentes et surtout utiles. Ai contacté hebergeur qui a donné
les droits nécessaires, ai changé les couac dans le code et je suis au ange.
Merci encore et encore.