Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/07/2008, 09:26
Azrael
 
Fecha de Ingreso: enero-2004
Ubicación: GDL
Mensajes: 42
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Script para subir imagenes

este es un post que escribio P4blo, explica muy bien como hacerlo

Cita:
En este ejemplo, se trabajara con upload de una imagen asociandola al id del usuario. El codigo es el siguiente:

//Recibo los datos que vienen por post

$archivo = $_FILES['campo']['name'];

//Insercion de los datos, ojo la imagen se graba con su nombre original en la tabla (es un campo varchar)

$sql_ins = "INSERT INTO avisos_img(texto,imagen) VALUES ('$nombre','$archivo')";
$res = mysql_query($sql_ins) or die ( "Error MySQL dice: " . mysql_error() );

//Ahora rescatar el id del registro insertado con la funcion mysql_insert_id()

$id = mysql_insert_id();

//Generar el nuevo nombre para la imagen, asociado con el id del registro, para luego moverla a su posicion final

$nuevo_nombre = ( string ) $id. "_" .$_FILES['file']['name'];

//Con la funcion move_uploaded_file mover el archivo a su posicion final, ojo con las rutas

move_uploaded_file($_FILES['file']['tmp_name'], "./avisos/".$nuevo_nombre );

Bueno de esta forma la imagen se almacena, por un lado, con su nombre original en la tabla, y por otro, con el id del registro + el nombre de la imagen. Por ejemplo si realizamos el proceso de insercion y realizamos el upload de una imagen cuyo nombre es "imagen1.gif" quedaria de la siguiente forma:

imagen1.gif => valor en el campo de la tabla, por ejemplo si el registro genero el id 1, la imagen quedaria almacenada en la ruta especificada con el nombre

1_imagen1.gif

De esta forma cuando realizemos la consulta de los datos para mostrar la imagen seria facil:

$sql = "SELECT * FROM usuarios"

$res = mysql_query($sql);

$row = mysql_fetch_array($res);

//mostrar la imagen

<img src = "imagenes/<? echo $row['id']?>_<? echo $row['imagen']?>">

Eso seria, pero a esta explicacion se le deben agregar ciertas validaciones, para tener un algoritmo mas robusto.

Espero lo entiendan.-

Un saludo

P4blo.-----

teniendo en cuenta que:
"campo" es el nombre de tu campo que viene del form donde subes la imagen

$archivo = $_FILES['campo']['name'];

y ent esta linea donde dice /avisos/ es tu carpeta donde vas a guardar las imagenes en le servidor

move_uploaded_file($_FILES['file']['tmp_name'], "./avisos/".$nuevo_nombre );

muy bien explicado :)