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>\';
[email protected]_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");
[email protected]_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");
[email protected]_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!