Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
22 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / como subir imagenes y guardar la ruta en una db
5 respuestas recibidas | 78 visitas | Categoría PHP

como subir imagenes y guardar la ruta en una db

Avatar de katyla
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 39 posts)

#0 Offline katyla Usuario 28 abr 08 (17:14)  

Bueno miren tengo una web, donde pido que se registren, ia tengo eso funcionando , solo que ahora me pidieron mis maestros de la school, k guardara una foto de eios en una carpeta y que guardara la ruta en la db, asi cuando pida los datos del user , salga la foto,

el codigo que hice para k se registren mis users es




Código PHP


<?
include('config.php');

$user = stripslashes($_POST["nick"]);
$user = strip_tags($user);

$pass = stripslashes($_POST["password"]);
$pass = strip_tags($pass);

$email = stripslashes($_POST["email"]);
$email = strip_tags($email);

$usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");

if(
$user_ok=mysql_fetch_array($usuarios))     {

echo
" El usuario ia esta registrado por otra persona ";

mysql_free_result($usuarios);


} else {

$emails=mysql_query("SELECT email FROM users WHERE email='$email' ");
if(
$email_ok=mysql_fetch_array($emails))     {

echo
" el mail ia esta registrado por otra persona ";

mysql_free_result($emails);


}
else {  

$nombre = $_POST["nombre"];
$sexo = $_POST["sexo"];
$edad = $_POST["edad"];
$lugar = $_POST["lugar"];
$celular = $_POST["celular"];
$estudios = $_POST["estudios"];
$web = $_POST["web"];


mysql_query("INSERT INTO users (nick,pass,email,nombre,sexo,edad,lugar,celular,estudios,web)

values ('$user','$pass','$email','$nombre','$sexo','$edad','$lugar','$celular','$estudios','$web') "
);  

echo
" $lomeli ";

}
}

?>




ese es.. ahora solo me falta aumentarle lo de la foto,, pero no supe :( ia probe varias cosas y no pude ojala me aiuden

thanks

Re: como subir imagenes y guardar la ruta en una db

Avatar de jcvasquez
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 14 posts)

#1 Offline jcvasquez Usuario 28 abr 08 (17:41)  
El código mínimo, en general, es este:

if(is_uploaded_file($_FILES[$foto]['tmp_name'])) {
if(copy($_FILES[$foto]['tmp_name'], $uploaddir . "/" . $_FILES[$foto]['name'])) {
$archivo = $uploaddir . "/" . $_FILES[$foto]['name'];
$sql = @mysql_query("INSERT INTO tabla VALUES('$archivo', '$email')");
}
}

Uso el identificador '$email' porque debe ser único para cada usuario (como me parece que es en tu caso). Podría haber sido el nombre de usuario, un ID, o lo que tu uses.

Requiere de
1) Un directorio dónde colocar las fotos ($uploaddir). Esto lo creas tú, uno compartido para todos los usuarios o haces que el script lo cree automáticamente (con mkdir) para cada usuario nuevo que se registra. Recuerda que es importante el asunto de los permisos en el directorio de fotos, o no podrás subirlas usando un formulario
2) Una tabla en dónde se almacena LA RUTA al archivo de imágen
3) un formulario con un campo tipo FILE llamado 'foto':

<form method="post" action="" enctype="multipart/form-data">
<input name="foto" type="file">
<input type="submit" name="Submit" value="Enviar Foto">
</form>

lo hice solamente porque no sabía que era imposible...

Re: como subir imagenes y guardar la ruta en una db

Avatar de katyla
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 39 posts)

#2 Offline katyla Usuario 28 abr 08 (18:04)  
no entiendo :S me podrias xplicar mas detalladamente pliss.. o arreglarme el php si porfa esk kiero k todo el codigo este en ese php porfa :)

Re: como subir imagenes y guardar la ruta en una db

Avatar de jcvasquez
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 14 posts)

#3 Offline jcvasquez Usuario 28 abr 08 (18:42)  
jajajaja... ¿y no quieres que vaya también a la escuela y te haga la tarea?

lo hice solamente porque no sabía que era imposible...

Re: como subir imagenes y guardar la ruta en una db

Avatar de katyla
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 39 posts)

#4 Offline katyla Usuario 28 abr 08 (19:14)  
sisisisiis:D andale aiudame esk no c deveras :( sisisi porfa :D plisss esk no se mucho de php apenas tengo 18 años :( y en la escuela no enseñan nada :( sisisisi :D anane si :$

Re: como subir imagenes y guardar la ruta en una db

Avatar de jcvasquez
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 14 posts)

#5 Offline jcvasquez Usuario 28 abr 08 (20:50)  
OK, si entendí bien, quieres subir una foto de cada usuario. Me imagino que eso lo harás una sola vez, en el momento del registro del usuario. Para eso, en el mismo formulario de registro, agregas un campo tipo FILE, que te permita enviar el archivo de foto. Esto se hace poniendo el siguiente campo:

<input name="foto" type="file">

En el mismo formulario donde pones todos los otros datos del registro del usuario (nombre, email, sexo, etc.). Ahora, la foto tiene que ir a caer en algún directorio de tu servidor. Digamos que almacenas solamente una foto por usuario y usas para esas fotos un directorio llamado /fotos. Para que puedas enviar las fotos a ese directorio usando el formulario, necesitas tener permisos de escritura sobre ese directorio. Si estas usando windows, eso no debe ser problema. Si usas Linux o algún *NIX, debes asegurarte de tener permiso para escribir en ese directorio o el script no te funcionará.

Ahora, el lazo IF (el primero) comprueba que se haya subido el archivo al servidor. Normalmente, cuando subes un archivo, este no cae directamente en donde tu quieres, sino que se va al directorio temporal (depende del sistema). Por eso la función is_uploaded_file solo comprueba que haya llegado el archivo. El siguiente lazo comprueba que hayas podido copiar ese archivo temporal a su destino final usando la función COPY. Esta función recibe dos argumentos, separados por comas: el archivo que vas a copiar y hacia donde lo vas a copiar. Si tu directorio de destino se llama fotos, entonces la variable $uploaddir debe tener este valor:

$uploaddir = '/fotos';

y el nombre definitivo del archivo será:

$archivo = $uploaddir . "/" . $_FILES[$foto]['name'];

Por ejemplo, si tu foto se llama DSC001.JPG, ahora estará en /fotos/DSC001.JPG.

El siguiente paso es almacenar esa información en la base de datos. Ya sabes que la RUTA a tu foto esta almacenada en la variable $archivo. Entonces, en el mismo lugar de ese script en que envías los datos del usuario a la tabla cuando se esta registrando (nombre, email, sexo, etc.) también mandas la variable $archivo. Claro que para poder mandarla en la consulta, necesitas agregar en la tabla un campo para almacenar este valor (por ejemplo, campo FOTO VARCHAR 100).

Espero que te haya quedado un poco más claro.

lo hice solamente porque no sabía que era imposible...

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster