Foros del Web » Programando para Internet » PHP »

Subir imagenes al servidor

Estas en el tema de Subir imagenes al servidor en el foro de PHP en Foros del Web. Hola me gustaría poner un <input type='file'> para poder subir imagenes a un servidor des de una página web. El código php para copiar la ...
  #1 (permalink)  
Antiguo 06/07/2006, 04:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Subir imagenes al servidor

Hola me gustaría poner un <input type='file'> para poder subir imagenes a un servidor des de una página web. El código php para copiar la imagen del ordenador cliente al servidor como sería? que comprovaciones debería hacer para que subieran siempre el mismo tipo de imagen (es decir, tamaño, extensión, dimensiones...) ?

Grácias.
  #2 (permalink)  
Antiguo 06/07/2006, 04:42
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 16 años
Puntos: 0
Usa el buscador, seguro que es un tema que se ha explicado muchas veces! :)
__________________
Retro Invaders : Mi blog
  #3 (permalink)  
Antiguo 06/07/2006, 05:35
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 14 años, 5 meses
Puntos: 0
es que encontre esto y no lo entiendo muy bien:

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="submit" value="Subir imagen" />
</form>


<?
$destino = 'uploaded' ;
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' . $_FILES [ 'file' ][ 'name' ]);
?>


<?
$destino = 'uploaded' ;
// Leemos el tamaño del fichero
$tamano = $_FILES [ 'file' ][ 'size' ];
// Comprovamos el tamaño
if( $tamano < 500 ){
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' . $_FILES [ 'file' ][ 'name' ]);
}
else echo "El tamaño es superior al permitido" ;
?>

Que singifica esto de destino=uploaded ?
Y el tmp_name cual es ? el nombre de la carpeta temporal del servidor?
  #4 (permalink)  
Antiguo 06/07/2006, 05:42
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 16 años
Puntos: 0
El funcionamiento es algo asi: (tampoco soy un experto)

- El archivo se sube a un espacio temporal, con un nombre temporal (eso es lo que te devuelve $_FILES [ 'file' ][ 'tmp_name' ])
- Luego con "move_uploaded_file" lo mueves a la carpeta que quieras, con el nombre que quieras, en este caso lo renombra como "uploaded"

Y listo! Lo mejor es que vayas haciendo pruebas para ir entendiendolo... al principio cuesta un poco.
__________________
Retro Invaders : Mi blog
  #5 (permalink)  
Antiguo 06/07/2006, 08:21
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 14 años, 2 meses
Puntos: 281
Sip. en el FAQ tienes un buen ejemplo:
http://www.forosdelweb.com/showthrea...389#post249389
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #6 (permalink)  
Antiguo 10/07/2006, 01:35
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 14 años, 5 meses
Puntos: 0
el link esta bien escrito de lo de la FAQ ?
  #7 (permalink)  
Antiguo 10/07/2006, 02:28
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 15 años, 6 meses
Puntos: 102
josepzin: tus comentarios son acertados pero tienes un pequeño error cuando mensionas lo siguiente:
Cita:
Iniciado por josepzin
en este caso lo renombra como "uploaded"
No lo renombra, el "uploaded" es la ubicación final del fichero (la carpeta) y se guarda con el nombre original... vé la concatenación:

move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' . $_FILES [ 'file' ][ 'name' ]);


Al final quedas con uploaded/nombre_original.ext. Es el mismo resultado que la concatenación de la FAQ (cuyo enlace es correcto, si esa fué la pregunta) solo que se realiza antes de ejecutar la función (la almacena en la variable $ruta).

Para renombrar el fichero habrá que indicarlo directamente en ese segundo parámetro, por ejemplo:
Código PHP:
$ruta"carpeta/nuevo_nombre.ext";
move_uploaded_file$_FILES 'file' ][ 'tmp_name' ], $ruta); 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 10/07/2006, 05:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 14 años, 5 meses
Puntos: 0
pues no puedo acceder al link, le doy y me sale una página en blanco con símbolos extraños. Gracias por la aclaración. Por cierto como se el tmp_name ?
  #9 (permalink)  
Antiguo 10/07/2006, 06:25
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 14 años, 8 meses
Puntos: 7
http://www.forosdelweb.com/showthrea...389#post249389 , si funciona, pincha en el y accedes, si te aparecen simbolos raros dale a refrescar la pagina, en ocasiones ocurre esto ( http://www.forosdelweb.com/showthrea...11#post1615511 )respecto al tmp_name, no necesitas saberlo, te lo sube con el mismo nombre que el original(en este caso).
Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #10 (permalink)  
Antiguo 10/07/2006, 06:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 14 años, 5 meses
Puntos: 0
muchas gracias
  #11 (permalink)  
Antiguo 17/06/2007, 11:20
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Re: Subir imagenes al servidor

Perdón,acá un usuario de php no muy ducho
Es que aun no domino esto muy bien ,pero me interesa esto de subir una imagen
Hasta lo que tengo entendido, en $destino guardo el nombre de de mi host,y despues de la / , escribo el nombre de la carpeta donde destino mis imagenes,en este caso, IMG

Entonses me quedaría asi?

$destino="sql2.xxx.com";

move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/img' . $_FILES [ 'file' ][ 'name' ]);

Que tengo que rellenar en los otros campos?

Grasias por adelantado pibes
  #12 (permalink)  
Antiguo 23/06/2007, 19:39
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 16 años
Puntos: 0
Re: Subir imagenes al servidor

Cita:
Iniciado por jam1138 Ver Mensaje
josepzin: tus comentarios son acertados pero tienes un pequeño error cuando mensionas lo siguiente:
No lo renombra, el "uploaded" es la ubicación final del fichero (la carpeta) y se guarda con el nombre original... vé la concatenación:
totalmente cierto :)
__________________
Retro Invaders : Mi blog
  #13 (permalink)  
Antiguo 23/06/2007, 19:43
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 16 años
Puntos: 0
Re: Subir imagenes al servidor

Cita:
Iniciado por hombre_desesperado Ver Mensaje
Hasta lo que tengo entendido, en $destino guardo el nombre de de mi host,y despues de la / , escribo el nombre de la carpeta donde destino mis imagenes,en este caso, IMG

...

move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/img' . $_FILES [ 'file' ][ 'name' ]);
En realidad esto es como el comando MOVE o COPY... o sea: MOVE origen, destino

O sea:
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], '/img/nuevonombre.jpg');

O si queres usar el mismo nombre del archivo subido:
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], '/img/'.$_FILES [ 'file' ][ 'name' ]);
__________________
Retro Invaders : Mi blog
  #14 (permalink)  
Antiguo 23/06/2007, 22:31
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 13 años, 10 meses
Puntos: 33
Re: Subir imagenes al servidor

Aquitienes este codigo:
HTML>
<html>
<head>
<title>Subir Archivos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FF9900">
<form action="SubirArchivosX.php" method="post" enctype="multipart/form-data">
Archivo Que Desea Subir:<br><input name="archivo" type="file"><br>
Pongale Nombre A Su Archivo:<br><input name="minombre" type="text" value="franco"><br>
<input name="submit" type="submit" value="Subir Archivo!">
</form>
</body>
</html>
php= SubirArchivosX.php
<?php
$nombre = $_POST['minombre'];
if (isset($_POST['submit'])) {
if(is_uploaded_file($_FILES['archivo']['tmp_name'])) { // verifica haya sido cargado el archivo
$archivo = $_FILES['archivo']['name'];
$SUBIRADIRECCION = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$SUBIRADIRECCION .= "$archivo";
$SUBIRADIRECCIONXYZ = $_SERVER['DOCUMENT_ROOT']."/archivos/";
$SUBIRADIRECCIONXYZ .= "$nombre";
if(move_uploaded_file($_FILES['archivo']['tmp_name'], $SUBIRADIRECCION)) { // se coloca en su lugar final
rename("$SUBIRADIRECCION", "$SUBIRADIRECCIONXYZ");
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"http://TUSITIOWEB/archivos/$nombre\">$nombre</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['archivo']['type']."</i><br>";
echo "Tamaño: <i>".$_FILES['archivo']['size']." bytes</i><br>";
echo "<hr><br>";
}
}
}
?>
TODO ESTE CODIGO TE PERMITE ESCOGER UN ARCHIVO DE CUALQUIER TIPO, GIF, JPG, PDF, WMA, WMV, 3GP, MP3, MID, TXT, DOC, ETC, RENOMBRARLO A LO QUE TUQUIERAS, CONSERVANDO EL TIPO (EJEMPLO: .MP3). FINALMENTE TE INFORMA DONDE ESTA, EL TAMAÑO Y EL TIPO.
DEBES TENER CUIDADO CON EL "SERVER DOCUMENT_ROOT" YA QUE SI UTILIZAS LOS VIRTUAL HOSTS, CADA VIRTUAL HOST TIENE UN "DOCUMENT_ROOT" DIFERENTE.
Saludos
Franco
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 03:33.