Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/04/2003, 15:03
Avatar de mveraa
mveraa
 
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 4 meses
Puntos: 2
bueno estoy suponiendo que hablamos de envio de archivo por internet bueno encontre este articulo en el foro php

subir imágenes

Tema: Archivos

Pregunta: ¿Cómo puedo subir imagenes a través de una forma?

Respuesta:

Aqui va un pequeño tutorial:

Funciona de la siguiente manera, con mi código subo un archivo via input_file en una forma y este se guarda automaticamente en el archivo \tmp del directorio de php del servidor, solamente mientras corres el codigo, porque despues el mismo servidor lo borra (por seguridad) cuando termina el código; a este archivo le da un nombre temporal, asi que con codigo lo copio a mi directorio del sitio y le cambio el nombre.

Esta es la forma:


<form action="<?php echo$PHP_SELF ?>" method="post" enctype="multipart/form-data" name="ubicaform2" id="ubicaform2">

<input name="addubica" type="submit" id="addubica" value="subir imagen">

Imagen: <input name="upimagen" type="file" id="upimagen">

</form>




Si te das cuenta, envio la forma a la misma pagina PHP pero esto lo puedes cambiar dirigiéndolo a otra pagina que procese la inserción a la base de datos, lo que si debes tomar mucho en cuenta, al menos para imágenes es el enctype="multipart/form-data"



Luego, al principio de mi pagina (o en la pagina a donde es dirigida la forma) pones esto:



if (isset ($addubica)) {
print "$upimagen = upimagen ";
print "$upimagen_name = upimagen_name ";
print "$upimagen_type = upimagen_type ";
print "$upimagen_size = upimagen_size ";

$newimage = sprintf ("imagenes/%s", $upimagen_name);
move_uploaded_file($upimagen, $newimage);

mysql_select_db($database_travconn, $travconn);
$sql = "INSERT INTO ubicacion (imagen) VALUES ('$newimage')";
$result = mysql_query($sql);
}



Asi entra el registro en la base de datos haciendo referencia a la imagen que quedó en mi subdirectorio imagenes.

Las cuatro lineas 'print' solo estan para confirmar el nombre de la imagen original, el nombre que queda, el tipo y el tamaño de la imagen, ya que lo hayas probado, puedes borrar estas lineas o comentarlas con //

Asi, al tope de la página resultante en el browser aparecería algo asi:

jtix25s.tmp=upimagen mi_imagen.gif=upimagen_name jpeg/gif=upimagen_type 2654=upimagen_size

Nota : ciertas veces despues del nombre temporal de la imagen te puede salir un warning diciendo que no se puede crear la imagen y no se puede mover al directorio, esto se debe a los permisos que tienes en el directorio \tmp



Por último en la página donde quieras que se abra el archivo solo lo llamas con el nombre que le diste, sacándolo de la base de datos, en mi caso sería:


Por último en la página donde quieras que se abra el archivo solo lo llamas con el nombre que le diste, sacándolo de la base de datos, en mi caso sería:



<img src="<?php echo $row_Ubicacion['imagen']; ?>">

que me da como resultado "imagen/mi_imagen.gif"

aunque el archivo de la imagen ya esta fisicamente en el subdirectorio "imagen" con la base de datos solo asigno el source, es decir, en este caso el archivo de la imagen queda guardado en el subdirectorio imagenes/ de mi site, y en el campo 'imagen' de mi base de datos queda solo el path "imagenes/mi_imagen.gif".

nota la otra forma es usar ASP , si no entiendes nada escribe en el foro PHP , ahi estamos esperando cualquier duda..

chao...