Mostrar imagen

Buenas amigo tengo una consulta, mira tengo el siguiente código:
<body>
    <form name="form1" ENCTYPE="multipart/form-data" METHOD="post">
        <input type="file" name="imagen1">
        <input type="submit" value="aceptar">
    </form> 
<?php
    $image2=$_FILES['imagen1'];  
     echo $image2['name']; 
?>
<table>
<tr>
<td><img src="<?php echo $image2['name']; ?>"> </td>
</tr>
</table>
</body>
Ese código muestra la imagen que se seleccione en el formulario, pero NO MUESTRa, es decir el: <img src="<?php echo $image2['name']; ?>"> no me lo reconoce, lógicamente he verificado que la imagen exister en la ruta: C:\Inetpub\wwwroot, pero nada no se muestra, pero si yo escribo directamente el nombre de la imagen, si se muestra, me explico, si escribo:
<img src="ejemplo.jpg">, si sale, cuando muestro el valor de la variable $image2['name'] sale: ejemplo.jpg, no entiendo porque no sale. Por favor si pudieras decirme porque no sale, y me sugieres como hacerlo te agradeceria. Gracias
Respuesta
1
El problema creo que es que la imagen no se está grabando correctamente en el servidor.
Échale un ojo a este tutorial sobre cómo subir ficheros con formularios por POST
http://www.w3schools.com/PHP/php_file_upload.asp
Mira tengo el siguiente código:
$a="info.txt";
$b="aa.txt";
    //$f=copy('c:/info.txt','c:/aa.txt');
    if (copy($a,$b))
    {
        echo "a";
    }
    else
    {
        echo "b";
    }
No copia, incluso he verificado los permisos de lacarpeta c:\inetpub\wwwroot y en c: igual no funciona, es decir no copia
Lo que necesitas para mover el fichero que se ha subido al servidor desde un formulario es lo siguiente:
http://php.net/manual/es/function.move-uploaded-file.php

3 respuestas más de otros expertos

Respuesta
1
bien el problema es aquí: $image2=$_FILES['imagen1']; el $_FILES sirve para cuando envías un formulario, en la página que recoges los datos,al igual que $_POST pero aquí estás todavía en la página sin haber enviado los datos por lo tanto lo que deberías hacer es en el src no poner el echo de PHP sino con javascript poner el document.image1.value dentro del image scr, creo que con eso debería funcionar sino dime.
Respuesta
1
<form enctype="multipart/form-data" method="post" action="00.php">
<table width="239" border="0" align="center">
<tr>
<td width="229"><input id="img" name="img" type="file" size="35" /></td>
</tr>
<tr>
<td>
<div align="center">
          <input name="cargar" type="submit" id="upload" value="Cargar" />
    <input name="action" type="hidden" value="upload" />
      </div>
</td>
</tr>
</table>
</form>
</body>
<?php
if ($_POST["action"] == "upload") {
 $tipo = $_FILES["img"]['type'];
    $archivo = $_FILES["img"]['name'];
 $destino="temp/".$archivo; // Aqui configuras tu carpeta donde subes tu imagen o archivo...
 if (copy($_FILES['img']['tmp_name'],$destino)) { //Subo los archivos
  echo '<img src="'.$destino.'"  /> ';
 } else {
  echo "Se ha generado un error intentando copiar el archivo. Por favor contacte con el administardor";
 }
}
/*
Espero te sea de gran ayuda este código amig@
Nos vemos...
Dios te bendiga y te de Sabiduria
*/
?>
Mira una consulta, utilizo el copy:
$a="info.txt";
$b="aa.txt";
//   $f=copy('info.txt','aa.txt');
    if (copy($a,$b))
    {
        echo "a";
    }
    else
    {
        echo "b";
    }
Pero no copia nada, he verificado que el archivo info.txt exista tanto en C:\inetpub\wwwroot como en C pero igual no copia, es decir en la función if, sale B que quiere decir que ha entrado a else, he verificado los permisos de la capeta wwwroot y esta con todos los permisos incluso de escritura. Gracias
¿Probaste el código que te pase?
En mi equipo esta muy bien... Pruébalo y me comentas.
Respuesta
1
¿Has probado de subir el archivo con esta utilidad php o la has pegado ahí directamente? A lo mejor no tiene nada que ver, ¿pero ha comprobado si tienes habilitado la subida de archivos? Y en todo caso, revisa la ruta donde se alojan los archivos temporales subidos.
Si abre otro post igual, cierre éste ya existente o comente la respuesta y se descartará, pero no deje posts abiertos iguales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas