Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/12/2011, 10:54
jeshua3001
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Insertar imagen en base de datos

alguien porfavor me puede ayudar con este script qu lo encontre en el forum pero no da mucho detalles de encuanto a la base de datos
Cita:
<?php
function mysql_escape($cadena) { //funcion para limpiar campos del form de codigo malicioso
if(get_magic_quotes_gpc() != 0) {
$cadena = stripslashes($cadena);
}
return mysql_real_escape_string($cadena);
}


//nos conectamos a la base de datos
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('base_de_datos')or die ('Error al seleccionar la Base de Datos: '.mysql_error());




if(isset($_FILES['fichero']['name'])) { //comprovamos que se haya cargado el archivo

if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {


//empieza la redimension, tomamos la imagen temporal subida que puede ser jpg, png o gif
$info = getimagesize($_FILES['fichero']['tmp_name']);
//segun el caso sera jpg, gif, png
switch ($info[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
// etcétera //
}

$original = $imagen;
$original_w = imagesx($original);
$original_h = imagesy($original);

$max = 50; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS segun la tabla donde la muestres

if($original_w>$original_h) {
$muestra_w = $max;
$muestra_h = intval(($original_h/$original_w)*$max);
} else {
$muestra_w = intval(($original_w/$original_h)*$max);
$muestra_h = $max;
}

$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);//aqui se crea la imagen en la variable $muestra

imagedestroy($original); // aqui destruyo el original, pues no hace falta ya


// comenzamos a guardar el archivo
$ruta_destino = "images/"; //ponemos la ruta donde queremos almacenar los archivos en el server
$namefinal= trim ($_FILES['fichero']['name']); //quito espacios iniciales y finales del nombre del archivo
$namefinal= ereg_replace (" ", "", $namefinal); //quito los espacios entre el nombre para no tener despues problemas de codigo
$uploadfile= $ruta_destino . $namefinal; //monto la ruta seguida del nombre del archivo en $uploadfile
if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final, el 100 el la calidad del jpg
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";







//insertamos en la BD los campos del form
if(isset($_SESSION['id'])) // Aqui actualizaremos el perfil del usuario en la base de datos y le mostraremos que esta conectado
{
session_start();
$orden = ("select * from tabla_base_datos WHERE imagen = '0'");
mysql_query("UPDATE tabla_base_datos SET imagen='".$_FILES['fichero']['name']."'") ;



}

}else{echo "no se guardo la foto, ni se inserto en la Base de Datos";}
}else{echo "no se subio foto";}
}else{echo "no se selecciono la foto";}


//ahora el formulario

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<p>Imagen perfil:
<input name="fichero" type="file" size="20" maxlength="20">
<input name="submit" type="submit" value="Upload!">
</form>
</body>

</html>
el script sube la imagen a al servidor de forma corecta pero no inserta la ubicacion ni nada en la base de datos porfa necesito una ayudita puestoa que me parece exelente este script es bantante seguro que los usuarios suban la imagen asi