Upload de photo ...

cs_jon34 Messages postés 2 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 26 janvier 2008 - 26 janv. 2008 à 16:57
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 27 janv. 2008 à 21:34
Salut à tout,

j'ai besoin de faire une page d'upload et voici ce que j'ai fait :

<html>
<head>
<title>

</head>

<form method= "post" enctype="multipart/form-data" action="upload.php">

</form>

</html>

<?php


if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'upload/'; // dossier où sera déplacé le fichier


    $tmp_file = $_FILES['fichier']['tmp_name'];


    if( !is_uploaded_file($tmp_file) )
    {
  print("Le fichier est introuvable");
        exit("Le fichier est introuvable");
    }


    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];


    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
  print("Le fichier n'est pas une image");
        exit("Le fichier n'est pas une image");
    }


if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
    exit("Nom de fichier non valide");
}
    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];


    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
  print("Impossible de copier le fichier dans $content_dir");
        exit("Impossible de copier le fichier dans $content_dir");
    }
 print "Le fichier a bien été uploadé";
    echo "Le fichier a bien été uploadé";
}


else
{
 print("error");
}


?>

Je sais que je doit pas mettre print("") et exit("") a la suite enfin je croit ;) mais voici l'erreur qui s'affiche lors de l'envoi d'une image :

Warning : move_uploaded_file(upload/test.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/tt/www/source_tv/upload.php on line 31

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpjWtAe7' to 'upload/test.jpg' in /home/tt/www/source_tv/upload.php on line 31
Impossible de copier le fichier dans upload/Impossible de copier le fichier dans upload/



<style type ="text/css"><![CDATA[
#ejs_slide_box { position:absolute; -moz-border-radius: 10px; width:320px; height:270px; top:291px; left:-270px; background-color:#ffffff; border-color:#000000; border-width:0px; border-style:solid; }
#ejs_slide_bouton { position:absolute; color:#ffffff; -moz-border-radius: 20px; top:30px; left:305px; background-color:#000000; font-family:arial; font-weight:bold; font-size:10px; }
#ejs_slide_image { position:relative; -moz-border-radius: 20px; top:7px; left:7px; }
.ejs_slide_blanc
{
color:#ffffff; font-family:arial; font-weight:bold; font-size:15px; text-decoration:none; }]]></style>

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 janv. 2008 à 23:14
Hello,

la fonction a un problème avec ton répertoire "upload", à priori.
Il ne doit pas exister. En tous cas, pas à ce niveau par rapport à ton script (même niveau que ton script).
0
cs_jon34 Messages postés 2 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 26 janvier 2008
26 janv. 2008 à 23:36
pourtant j'ai créer le dossier upload
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 janv. 2008 à 09:22
Au même niveau que ton script...?
Et ton script a des droits suffisants dessus ?
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 janv. 2008 à 21:34
Généralement, le probleme vient du fait que le dossier n'ait pas les bons acces en écriture.
Deux possibilités
Tu met le chmod en 777, pas du tout sécurisé mais parfois la seule solution. Si c'est ton propre serveur (mutualisé ou perso), tu peux donner comme nom d'utilisateur (ou de groupe, ou des deux) du même que celui qui lance apache  (généralement, c'est nobody ou www-data), avec un chmod 744 ou 774 comme ca pas de soucis niveau sécurité.

Mais cela dépends bien sur de ton pouvoir sur le serveur (:
0
Rejoignez-nous