uregente

esteban
08 de Marzo del 2005
estoy haciendo una pagina web de un docente, el desea cargar los archivos de los tratabjos pdf, no se como hacerl con base de datos o simplemente con archivos alguien me puede ayudar por favor lo agradesco mucho

roman
08 de Marzo del 2005
Debemos comenzar creando la base de datos y la tabla
que almacenara el codigo de la foto, el thumbail y
la foto en si

create database fotos;
create table fotos.foto_foto(
idfoto int not null auto_increment primary KEY,
foto_grande mediumblob,
foto_pequena mediumblob,
);

///datos.php(pagina de configuracion)

<?php
$servidor="";
$nombre="";
$clave="";
?>


Ahora creamos un simple formulario que coja de nuestro
ordenador el thumbail y la foto(deben estar previamente
guardadas con el tamaƱo adecuado)
observar elType del formulario, esto nos permite enviar
tanto texto como ficheros

///form.php

<?
echo \'<font size=1>\';
echo \'<center>\';
echo\'<form enctype="multipart/form-data" action="guardararchivo.php" method="post">\';
echo \'Foto<br><input type="file" name="foto">\';
echo \'<br><br>\';
echo \'Thum.<br><input type="file" name="thumbail"><br><br>\';
echo \'<input type=hidden name=max_file_size value=1000000>\';
echo \'<input type="submit" value="Enviar archivo">\';
echo \'</form>\';
echo \'<br><br><a href=descargar_archivo2.php>Ver album</a>\';
?>

Esta es la pagina que guarda las fotos en la base de datos, da un mensaje de
error o de exito y nos devuelve al formulario, es muy sencilla

///guardadararchivo.php

<?php
require ("datos.php");
echo \'<center><font size=1>\';
$conexion=@mysql_connect($servidor,$nombre,$clave);
$res=mysql_select_db("fotos",$conexion);
if ( $conexion > 0 )
{

$archivo = $_FILES["foto"]["tmp_name"];
$tamanio = $_FILES["foto"]["size"];
$tipo = $_FILES["foto"]["type"];
$nombre = $_FILES["foto"]["name"];
$archivo_thumb = $_FILES["thumbail"]["tmp_name"];
$tamanio_thumb = $_FILES["thumbail"]["size"];
$tipo_thumb = $_FILES["thumbail"]["type"];
$nombre_thumb = $_FILES["thumbail"]["name"];
if ( $archivo != "none" && $archivo_thumb!="none")
{
$fp = fopen($archivo, "rb");
$contenido = fread($fp,$tamanio);
$contenido = addslashes($contenido);
fclose($fp);
$fp_thumb = fopen($archivo_thumb, "rb");
$contenido_thumb = fread($fp_thumb,$tamanio_thumb);
$contenido_thumb = addslashes($contenido_thumb);
fclose($fp_thumb);
$query = "INSERT INTO fotos.foto_foto VALUES(null,\'".$contenido."\',\'".$contenido_thumb."\')";
mysql_query($query);
if(mysql_affected_rows($conexion) > 0)print "Se ha guardado el archivo en la base de datos.";
else print "NO se ha podido guardar el archivo en la base de datos.";
}
else print "No se ha podido subir el archivo al servidor";
}else{
echo \'No conectado\';
}
echo "<HTML><SCRIPT>document.location=\'form.php\';</SCRIPT></HTML>";
?>


A continuacion muestro como se puede crear un album de fotos con enlace a esa misma foto
mas grande, la pequeƱa es el thumbail que hemos guardado con tamaƱo mas pequeƱo y la
grande tambien la tenemos en la bas de datos(recomiendo comprimir mediante codigo con
gzip)aqui no las comprimo porque se complica un poco el script.


///descargar_archivo2.php

<?php
require ("datos.php");
$conexion=@mysql_connect($servidor,$nombre,$clave);
$res=mysql_select_db("fotos",$conexion);

$qry = "SELECT idfoto,foto_pequena FROM fotos.foto_foto";
$res2 = mysql_query($qry);
for ($j=0;$j < mysql_num_rows($res2);$j++)
for ($i=0;$i < mysql_num_fields($res2);$i++)
{
$foto=basename(tempnam(getcwd(),\'tmp\'));
$foto.=".jpg";
if ($i==1)
{
$contenido2=mysql_result($res2,$j,$i);
$ft=fopen($foto,"w");
fwrite($ft,$contenido2);
fclose($ft);
echo \'<a href=fotogrande.php?idfoto=\'.mysql_result($res2,$j,0).\'><img src=\'.$foto.\'> \';
echo \'\';
}
}
echo \'<br><br><font size=1><center><a href=form.php>Insertar nuevas fotos</a>\';
?>


y finalmente creamos la pĆ gina donde visualizamos las fotos en grande
sencillo, no?

///fotogrande.php

<?php
require("datos.php");
$conexion=@mysql_connect($servidor,$nombre,$clave);
$res=mysql_select_db("fotos",$conexion);
$qry = "SELECT foto_grande FROM fotos.foto_foto where idfoto=\'".$_GET["idfoto"]."\'";
$res2 = mysql_query($qry);
$foto=basename(tempnam(getcwd(),\'tmp\'));
$foto.=".jpg";
$contenido2=mysql_result($res2,0,0);
$ft=fopen($foto,"w");
fwrite($ft,$contenido2);
fclose($ft);
echo \'<center><img src=\'.$foto.\'> <br><br>\';
echo \'<font size=1><a href=descargar_archivo2.php>Volver al album</a>\';
?>

Saludos!