IMAGEN MOSTRAR con $_POST

samn1 Mensajes publicados 88 Estado Miembro -  
samn1 Mensajes publicados 88 Estado Miembro -
Hola,
Por favor, aquí está mi código que permite mostrar una imagen cargada y no funciona!
Poseo dos archivos, el primero es HTML, aquí está
<html> <head><title>testfichier</title></head> <body> upload your file: <form name="f1" action="fichierAff.php" method="post"> <input type="file" name="fichier" size="60"> <input type="hidden" name="nomFichier"> <input type="submit" name="b1" value="envoyer" /></form> </body>


el segundo es mi archivo .php que se encarga de la visualización:
<?php $r=$_POST['nomFichier']; echo " votre image uploadée est $r:::<img src=$r height=50 width=44>"; ?>


Necesito vuestra ayuda
de antemano Gracias
Saludos

5 respuestas

  1. ReDLoG
     
    Hola,
    1) primero, ¡intentas mostrar un valor vacío! De hecho $_POST['nomFichier'] corresponde a ese campo hidden de tu formulario que no contiene ningún valor porque no hay un "value" :
    <input type="hidden" name="nomFichier">

    2) además, tu imagen subida es accesible a partir del campo file de tu formulario por el arreglo (array) $_FILES['fichier'] :
    <input type="file" name="fichier" size="60">

    El valor size que has escrito corresponde a un archivo de 60 Ko, lo cual es muy poco...
    Leyendo la doc de PHP, habrías encontrado (y por tanto aprendido) por ti mismo dónde se sitúa tu error en el procesamiento de archivos subidos, te invito a consultarla sin demora...
    0
  2. le père
     
    Hola

    En tu etiqueta form te falta el enctype="multipart/form-data" indispensable para subir archivos :

    <form name="f1" action="fichierAff.php" method="post" enctype="multipart/form-data">


    En cuanto al manejo, nada que ver con lo que haces; encuentra un tutorial o lee la documentación :
    http://www.php.net/manual/fr/features.file-upload.post-method.php
    No es muy difícil
    0
    1. samn1 Mensajes publicados 88 Estado Miembro
       
      Gracias,
      he encontrado ejemplos y estoy siguiendolos!
      Ahora me gustaría mostrar las imágenes que existen en una carpeta, ¿este script bastará?: (sabiendo que este directorio contiene solo imágenes!)
       <?php echo "Mes Images:"; $directory="C:\Users\HP\Pictures\Nouveau dossier"; opendir($directory); if ($dir=opendir($directory)) { while ($file=readdir($dir)) echo "<img src=$file>"; } ?> 
      0
  3. le père
     
    echo "<img src=$file>";

    Cuando haces eso, el 'src' solo contiene el nombre de la imagen, sin ninguna ruta. El cliente irá a buscarla en la misma carpeta que tu script, que probablemente no sea la correcta.

    Hay que añadir la ruta relativa para ir desde tu script hasta la carpeta que contiene las imágenes, algo como:
    echo "<img src='images/$file'>";
    0
    1. le père
       
      Además, en tu bucle while ($file=readdir($dir)), hay que comprobar que $file es realmente un archivo con is_file, de lo contrario intentarás mostrar las subcarpetas (podría haber entre otros . y ..). De hecho, deberías verificar que los archivos que encuentras sean imágenes y no cualquier cosa.
      0
    2. samn1 Mensajes publicados 88 Estado Miembro
       
      "; } ?>
      0
  4. le père
     
     opendir($directory); if ($dir=opendir($directory))

    ¿Por qué abrir dos veces el directorio? tu primer opendir($directory); no sirve de nada.

    Luego, con tu echo "<img src=C:\Users\HP\Pictures\Nouveau dossier\\".$file.">"; el nombre de la ruta es C:\etc.. es decir, un archivo del PC de tu visitante, no de tu servidor. Mientras seas tú el único visitante, no hace mucha diferencia, pero cuando tu sitio esté en línea, tus visitantes no verán nada. Y todos los que no tengan Windows no entenderán C;\...
    Además, con un error, pusiste dos \ al final.

    Había escrito Es necesario añadir la ruta relativa. Cada palabra tiene un sentido, no había escrito «relativa» para hacerlo bonito o sofisticado. De hecho, puedes poner una dirección absoluta (con http://tusitio/Pictures etc). Pero en la práctica, lo más sencillo suele ser usar una ruta relativa, es decir, lo que hay que añadir al directorio que contiene tu script para llegar al que contiene las imágenes, incluso si hay que subir un nivel con ../ para subir un nivel.
    0
    1. le père
       
      Derniers detalles: añade " o ' en src='qqchose'. Y ganarías mucho evitando los espacios y los caracteres especiales en los nombres de carpeta (no Nouveau Dossier). No está prohibido, pero entonces hay que usar funciones que te compliquen la vida innecesariamente.
      0
  5. samn1 Mensajes publicados 88 Estado Miembro
     
    Gracias por todas sus observaciones, Padre. Nos vemos pronto.
    0