PDA

Ver versión completa : isertar imagenes en una base de datos mysql mediante php en una pagina de dreamweaver


abraxas25
24-ago-2007, 05:16
amigos necesito su ayuda

estoy diseñando una pagina en dreamweaver con codigo php y base de datos mysql la pagina necesita ke los usuarios previamente autorizados puedan subir fotos para completar un formulario tengo casi todo el problema resuelto solo me falta el codigo para subir las fotos estoy ocupando un codigo pero algo me falla ke no puedo completar la operacion les inserto es siguiente codigo y ustedes me corigen porfa necesito imperiosamente su ayuda

pagina subir.php

<form method="post" action="guardar.php" enctype="multipart/form-data">
Nombre: <input type="text" name="nombre de foto " maxlength="100"><br>
Imagen: <input type="file" name="foto" size="40"><br>
<p><input type="submit" name="submit" value="Subir">
</form>

pagina guardar.php


<?
mysql_connect("localhost","root","");
mysql_select_db("base de sistema");
$foto = addslashes(fread(fopen($foto, "r"), filesize($foto)));
$nombre de foto = $_POST["nombre de foto"];
mysql_query("INSERT INTO info_usuario (nombre de foto,foto) VALUES ('$nombre de foto','$foto')");
?>Se ha subido la imagen a la base de datos, puedes verla pulsando <a href="ver.php?nombre de foto=<? echo $nombre de foto ?>">aquí</a>


pagina guardar.php

<?
$nombre de foto = $_GET['nombre de foto'];
// Configurar las dos lineas siguientes
@mysql_connect("localhost","root","");
@mysql_select_db("nueva base de batos");
$query = "SELECT foto FROM info_usuario WHERE nombre de foto = '$nombre de foto'";
$result = @mysql_query($query);
$imagen = @mysql_result($result,0);
Header( "Content-type: image/jpeg");
echo $foto;
?>


ojala puedan ayudarme cualkier ayuda enviar correo a abraxas.demon23@gmail.com



pagina gusrdar.php

wompygs
24-ago-2007, 05:51
El archibo subir.php esta bien, lo que no entiendo es pq haces así el guardar.php, prueba una cosa:

Deja el archivo subir.php como esta, y en guardar prueba esto:
<?php require_once('config.php'); ?> //esto en el head
<?php
$directori_foto = "directorio del ftp"; //pon aqui el directorio donde se subiran las fotos, sino sabes como es mira creando un archivo phpinfo.php para que te ponga la ruta, suele ser algo tipo: /home/usuario/public_html/

$nombre = strtr($_FILES['foto']['name'], "ñ'ÁÉÍÓÚÀÈÌÒÙáéíóúäëïöüàèìòù ", "n-AEIOUAEIOUaeiouaeiouaeiou_");
$tamanio = $_FILES['foto']['size'];
$tipo = $_FILES['foto']['type'];
global $HTTP_POST_VARS;
$ar = "http://www.original-design.es/fotos/".$nombre; //aqui la url donde se sube la foto
copy($_FILES['foto']['tmp_name'],$directori_foto.$nombre);
echo "<font color=cc0000 face=verdana size=1>el archivo se a subido correctamente al servidor<br>";

$db = @mysql_pconnect($host,$user,$pass); //o como conectes tu con tu base de datos

if( !$db ){
echo "Error: no se a podido conectar a la base de datos";
exit;
}
mysql_select_db($dbname,$db); //selecciona la tuya
$sql = "INSERT INTO fotos (id, foto) VALUES ('','$ar')";
$result = mysql_query( $sql, $db) ;
if( $result ) {
echo "datos añadidos a la base de datos con exito";
}
else {
echo "Error: no se a podido añadir a la base de datos.";
}
echo "<br><br>";
?>

Y ahora crea el archivo config.php con este código:
<?
$carpeta_foto = './fotos'; //aqui el Nombre carpeta de archivos en la que se guardan las fotos
# Maximo Bytes
$bytes_max = '999999999999999'; //pon aqui el tamaño maximo de los archivos, para que los usuarios no te pongan archivos muy grandes
$host = "localhost"; //poner aqui el host de MySQL del servidor que useis. suele ser localhost
$dbname = "basededatos"; //aqui va el nombre de vuestra bd.
$user = "usuario"; //poner aqui el nombre de usuario de la base de datos
$pass = "password"; //aqui el pass
?>
Todo debería funcionarte bien con esto, solo tienes que cambiar los datos y poner los tuyos, espero que te funcione.

Recuerda que la carpeta en el FTP donde van a ir a las fotos tiene que estar con permisos, con ponerle 777 ya esta.


Si no entiendes el por que de alguno de los archivos o el código dimelo y te explico por encima, pero creo que si te fijas un poco y sabes algo de php lo entenderas

Un Saludo, Jaime