Foros del Web » Programando para Internet » PHP »

Subir imagen y mostrarla

Estas en el tema de Subir imagen y mostrarla en el foro de PHP en Foros del Web. Hola amigos del foro quisiera saber como se hace para cargar una imagen con un formulario para luego mostrarla en la misma pagina. En las ...
  #1 (permalink)  
Antiguo 23/04/2008, 11:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Subir imagen y mostrarla

Hola amigos del foro quisiera saber como se hace
para cargar una imagen con un formulario para luego mostrarla
en la misma pagina. En las Faq's encontre esto
Código:
Tema: Archivos
Pregunta: ¿Cómo puedo subir archivos a través de un formulario?
Respuesta: Con el siguiente ejemplo.


Código PHP:
<?php 
if (isset($_POST['submit'])) {  
    if(is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo 
        if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    echo "<b>Upload exitoso!. Datos:</b><br>"; 
            echo "Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"; 
            echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"; 
                    echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"; 
                        echo "<br><hr><br>"; 
        } 
    } 

// A continuación el formulario 
} 
?> 

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> 
Funciona de la siguiente manera:

El código sube un archivo via HTTP POST, este se guarda automaticamente con un nombre y en una carpeta temporales del servidor mientras corre el codigo, despues el mismo servidor lo borra (por seguridad). La función is_uploaded_file() verifica que este procedimiento haya sido exitoso. Posteriormente el archivo es movido a su posición final con la función move_uploaded_file().


Notas:
Es necesario el atributo enctype="multipart/form-data" del formulario, es lo que indica que se están enviando archivos. 
El primer key de $_FILES corresponde al name del filebox; En el ejemplo "fichero". 
Si se quiere condicionar la carga del archivo según su peso y/o tipo se deberá hacer a través de los datos arrojados por la variable superglobal $_FILES antes de colocarlo en su posición final. Por ejemplo: 
Código PHP:
If(is_uploaded_file($_FILE['fichero']['tmp_file']) { 
    If($_FILES['fichero']['type']=="image/jpeg") { 
        // Proseguimos solo si se trata de un JPG 
        move_uploaded_file("...etc...");  
    } else echo "El archivo no es una imágen JPG"; 
// bien puede condicionarse $_FILES['fichero']['size'] > XXXX 
// donde 'XXXX' es un número entero representando los bytes máximos del archivo  

Listas de los MIME TYPE hay muchas en internet. Una muy completa se encuentra en webmaster-toolkit 
En el ejemplo el archivo es guardado en la misma carpeta, si se quiere modicar esto ha de cambiarse el parámetro correspondiente de la función move_uploaded_file(). Por ejemplo: 
Código PHP:
$ruta= "carpeta/".$_FILES['fichero']['name']; // Se guardaría dentro de "carpeta" con el nombre original 
// $ruta= "carpeta/nuevo_nombre.jpg"; si también se quiere renombrar 
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta); 

// Puede guardarse $ruta en una Base de Datos para su uso posterior  

El ejemplo funciona con versiones PHP 4.1.x ó superior y con register_globals en OFF. 
La carga de archivos es dependiente de la configuración del servidor: disponer de permisos, no exeder el tamaño límite, el nombre de la carpeta personal, etc. 
Para detalles lease la documentación oficial: www.php.net/features.file-upload 

Espero les sea de utilidad. 

--------------------------------------------------------------------------------
Ay veo que las sube pero quisiera mostrarla tambien
Gracias
  #2 (permalink)  
Antiguo 23/04/2008, 11:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Re: Subir imagen y mostrarla

para mostrarla usa <img/> no??

solo checa donde se guarda con la funcion move_uploaded_file();
  #3 (permalink)  
Antiguo 23/04/2008, 11:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Re: Subir imagen y mostrarla

ok cierto
pero ahora tengo otro problema no se que pasara que la primera
vez que le doy upload no lo sube sino es a la segunda
  #4 (permalink)  
Antiguo 23/04/2008, 12:14
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Re: Subir imagen y mostrarla

Bueno sigo intentando el me esta subiendo las imagebes al mismo sitio donde esta el archivo.php ahora yo quiero que se guarden en una carpeta llamada img

if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
cuano yo le cambio ['name'] que creo que esa es la parte que se debe cambiar y le pongo img
me da este error

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/wamp/tmp\php47C.tmp' to '' in C:\wamp\www\Metal-prest\Subir Archivos\prueba.php on line 4

por fa alguien que me ayude...
  #5 (permalink)  
Antiguo 23/04/2008, 12:25
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Re: Subir imagen y mostrarla

ok listo solucionado

$ruta= "img/".$_FILES['fichero']['name']; // Se guardaría dentro de "img"
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta)){ // se coloca en su lugar final
  #6 (permalink)  
Antiguo 23/04/2008, 12:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Re: Subir imagen y mostrarla

mira... tmp_name no lo debes mover, vaya...

este, $_FILES['fichero']['name'] es el nombre del archivo ke subiste ((sin ruta))

simplemente agrega un ruta antes de tal nombre...

EJ.

'images/'.$_FILES['fichero']['name']
  #7 (permalink)  
Antiguo 18/11/2010, 12:04
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Re: Subir imagen y mostrarla

Cita:
Iniciado por pateketrueke Ver Mensaje
mira... tmp_name no lo debes mover, vaya...

este, $_FILES['fichero']['name'] es el nombre del archivo ke subiste ((sin ruta))

simplemente agrega un ruta antes de tal nombre...

EJ.

'images/'.$_FILES['fichero']['name']

no entiendo muy bien como quedaria todo ya listo
y el codigo que mustra la magen se debe intrducir solo asi?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.