PHP Recuperer valeur fichier input file

Résolu
kamaster Messages postés 4 Statut Membre -  
ookahh1 Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un formulaire d'upload de fichier (image) UPLOAD.PHP et un autre fichier pour confirmer CONFIRMATION.PHP

Mon problem est d'afficher sur confirmation.php le message suivant :

Votre photo " nomdelimage.jpg " a été bien uploadé !

J'essaie le code suivant :

// debut

Votre photo : <?php
if(isset($_POST['champdelaphoto']))
{
echo htmlentities($_POST['champdelaphoto']) a ete bien uploadé;
}
?>

// fin

Mais rien ne s'affiche.

AIDE SVP
Configuration: Windows XP
Firefox 2.0.0.11

8 réponses

  1. le père
     
    Bonjour,

    les images arrivent dans $_FILES , pas dans $_POST...
    7
  2. le père
     
    ça a l'ai bien sauf que dans photook.php, il faufrait faire
    <?php echo $_FILES['fichier']['name'];?> .

    En effet, $_FILES['fichier'] ne contient pas que le nom de ton tableau. Je colle ci-dessous un bout de la doc PHP :

    $_FILES['userfile']['name']
    Le nom original du fichier, tel que sur la machine du client web.
    $_FILES['userfile']['type']
    Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être "image/gif" . Ce type mime n'est cependant pas vérifié du côté de PHP et donc, ne prend pas sa valeur pour se synchroniser.
    $_FILES['userfile']['size']
    La taille, en octets, du fichier téléchargé.
    $_FILES['userfile']['tmp_name']
    Le nom temporaire du fichier qui sera chargé sur la machine serveur.
    $_FILES['userfile']['error']
    Le code d'erreur error code associé au téléchargement de fichier. Cet élément a été introduit en PHP 4.2.0
    4
  3. le père
     
    $tableau = explode ('/',$_FILES['userfile']['name']); // découpe le nom aux '/'
    echo $tableau[count($tableau)-1]; // affiche le dernier
    2
  4. kamaster Messages postés 4 Statut Membre 3
     
    Merci mon frere pour ta reponse.

    Quand j'ai essayer $_FILES avec ma formule plus haut, il y a eu erreur.

    Mais quand j'ai mis sa, le mot 'Array' s'affiche.

    Je vosu affiche mes codes ici

    // /////////////////////////// PHOTO.PHP ///////////////// LE FICHIER POUR UPLOADER

    <?php
    // ---------------------------------------------
    // Pure PHP Upload version 1.1
    // -------------------------------------------
    if (phpversion() > "4.0.6") {
    $HTTP_POST_FILES = &$_FILES;
    }
    define("MAX_SIZE",300000);
    define("DESTINATION_FOLDER", "./mode_et_loisirs/photos");
    define("no_error", "photoOK.php");
    define("yes_error", "photo_erreur.php");
    $_accepted_extensions_ = "gif,jpg,jpeg,png";
    if(strlen($_accepted_extensions_) > 0){
    $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
    } else {
    $_accepted_extensions_ = array();
    }
    /* modify */
    if(!empty($HTTP_POST_FILES['fichier'])){
    if(is_uploaded_file($HTTP_POST_FILES['fichier']['tmp_name']) && $HTTP_POST_FILES['fichier']['error'] == 0){
    $_file_ = $HTTP_POST_FILES['fichier'];
    $errStr = "";
    $_name_ = $_file_['name'];
    $_type_ = $_file_['type'];
    $_tmp_name_ = $_file_['tmp_name'];
    $_size_ = $_file_['size'];
    if($_size_ > MAX_SIZE && MAX_SIZE > 0){
    $errStr = "File troppo pesante";
    }
    $_ext_ = explode(".", $_name_);
    $_ext_ = strtolower($_ext_[count($_ext_)-1]);
    if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
    $errStr = "Estensione non valida";
    }
    if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
    $errStr = "Cartella di destinazione non valida";
    }
    if(empty($errStr)){
    if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
    header("Location: " . no_error);
    } else {
    header("Location: " . yes_error);
    }
    } else {
    header("Location: " . yes_error);
    }
    }
    }
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Charger photo</title>
    <style type="text/css">
    <!--
    .Style1 {
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #FF0000;
    }
    -->
    </style>
    </head>

    <body>
    <form action="photoOK.php" method="post" enctype="multipart/form-data" name="photo" id="photo">
    <table width="100%" border="0">
    <tr>
    <td colspan="3">Veuillez choisir votre photo, cliquez sur 'Charger' puis suivez les instructions.</td>
    </tr>
    <tr>
    <td width="19%">Choisir votre photo</td>
    <td width="36%"><label>
    <input type="file" name="fichier" id="fichier"/>

    </label></td>
    <td width="45%"> </td>
    </tr>
    <tr>
    <td> </td>
    <td><label>
    <input type="submit" name="submit" id="submit" value="Charger" />
    </label></td>
    <td> </td>
    </tr>
    <tr>
    <td colspan="3"><p class="Style1">Seulement des fichiers aux extensions <strong>gif, jpg, jpeg et png</strong>. Taille maximu : <strong>300000 octets</strong> (3 Mo)</p></td>
    </tr>
    <tr>
    <td> </td>
    <td> </td>
    <td> </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    ///////////////////////////////////// PHOTOOK.PHP ///////////// Si tout va bien

    <body>
    <table width="100%" border="0">
    <tr>
    <td width="100%">Votre photo <?php echo $_FILES['fichier'];?> a ete chargee avec success. </td>
    </tr>
    <tr></tr>
    </table>
    </body>

    MERCI POUR VOTRE AIDE
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kamaster Messages postés 4 Statut Membre 3
     
    Merci pour cette contribution.

    J'ai obtenu finalement une resolution, pratiquement satisfaisante :

    -----fichier testfile.html---------
    <form name="frm" method="post" action="postfile.php" enctype="multipart/form-data">
    <input type="file" name="fichier" onBlur="document.frm.action='postfile.php?fic='+
    this.value"><br>
    <input type="submit" value="Envoyer">
    </form>

    -------fichier postfile.php--------
    <?php echo $_GET['fic'];?>

    Et ça marche, mais seulement il m'affiche le chemin+le nom du fichier.

    Avez-vous une idee de comment afficher uniquement le nom sans le chemin ?

    C'est mon premier passage sur le forum, mais je suis tres ravi de la bonne chaleur.

    Keep doing so !
    1
  7. kamaster Messages postés 4 Statut Membre 3
     
    Vous êtes magnifiques !!! Merci bien, j'arrive a afficher seulement le nom du fichier.

    Je reviens demain avec un autre problème, et j'espère te revoir (LOL).

    Une fois encore merci.
    1
  8. ookahh1 Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   1
     
    et dans le où c'est l'url (chemin de l'image) que l'on voudrait afficher?
    0
  9. ILHAM MAROC
     
    <?php
    session_name();
    session_start('barney');
    if (!(session_is_registered('barney')))
    {
    header("location:index.php");
    exit();
    }
    ?>
    <html>
    <heade>
    <title>Administration du site: </title>
    </head>
    <body>
    <?php
    include_once "../conn/conn.php";
    $ref=$_POST['ref_pro'];
    $designation=$_POST['designation'];
    $prixu=$_POST['prixu'];
    $desc=$_POST['desc'];
    $poidpro=$_POST['poidpro'];
    $cat=$_POST['cat'];
    $qte=$_POST['qte'];
    $prixc=$_POST['prixc'];
    $hauteur=$_POST['hauteur'];
    $largeur=$_POST['largeur'];
    $poid=$_POST['poid'];
    $nb=$_POST['nb'];
    $result = Execute_query("SELECT * FROM produit WHERE prod_id=$ref");
    if(mysql_num_rows($result)==0){

    if (($_FILES['userfile']['type'])=='image/gif' or ($_FILES['userfile']['type'])=='image/png'
    or ($_FILES['userfile']['type'])=='image/jpeg'
    or ($_FILES['userfile']['type'])=='image/jpg' or ($_FILES['userfile']['type'])=='image/pjpeg')
    {
    if (($_FILES['userfile']['size'])<=1029830)
    {
    $source = $_FILES['userfile']['tmp_name'];
    $target = "../images/produits/".$_FILES['userfile']['name'];
    $rep=$_FILES['userfile']['name'];
    move_uploaded_file( $source, $target ) or die ("Impossible de faire votre upload");
    $req="SELECT * FROM produit WHERE prod_id=$ref";
    $result = Execute_query($req);

    if(mysql_num_rows($result)==0){
    $req2="INSERT INTO stoke VALUES('$ref','$qte')";
    @mysql_query($req2);

    $req1="INSERT INTO produit VALUES('$ref','$designation','$rep','$prixu','$desc','$poidpro','$cat')";
    @mysql_query($req1);

    $req3="INSERT INTO colis VALUES('$ref','$nb','$prixc','$hauteur','$largeur','$poid','$ref')";
    @mysql_query($req3);
    header('location:ajout_produit.php');

    exit;
    }
    elseif (mysql_num_rows($result)==1){

    echo "<script language='javascript'>\n";
    echo "alert('cette réfèrence existe déjà!!!.')\n";
    echo "document.location='ajout_produit.php'";
    echo "</script>";
    }
    }
    else
    {
    ?>
    <script language="javascript">
    alert("La taille de l'image doit être inférieure ou égal à 1 MO");
    history.back();
    </script>
    <?php
    }
    ?>
    <?php
    }
    else
    {
    ?>
    <script language="javascript">
    alert("Le fichier que vous devez uploader doit être une image");
    history.back();
    </script>
    <?php
    }
    exit();
    }
    elseif (mysql_num_rows($result)==1){
    echo "<script language='javascript'>\n";
    echo "alert('cette réference existe déjà.')\n";
    echo "</script>";

    }
    ?>
    </body>
    </html>
    -1