necesito subir imagenes a la base de datos (estoy trabajando con postgre 8.2 y con php), y baje un script muy bueno para ellos, dicho escript permite subir cualquier tipo de archivo a la bd, pero mi rpoblema esta en restringir el tamaño de la imagen a subir es decir que no pese mas de 200kb he intentado pero no me resulta aca les dejo el codigo para ver si me pueden ayudar porfavor el script es:
Código PHP:
<?php
include_once "sitedefs.php";
# Muestra el mensaje de confirmación
$msg="";
# Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true : false;
# Concexión a la base de datos
$link = pg_connect("host=$dbhost user=$dbuser password=$dbpwd dbname=$dbname") or die(pg_last_error($link));
if($postback){
# Variables del archivo
$type = $_FILES["archivo"]["type"];
$tmp_name = $_FILES["archivo"]["tmp_name"];
$size = $_FILES["archivo"]["size"];
$nombre = basename($_FILES["archivo"]["name"]);
//************************
if (!$size)
{
if (!((strpos($type, "gif") || strpos($type, "jpeg")) && ($size < 100000)))
{
$msg="Tamaño excesivo";
}
}
# Contenido del archivo
$fp = fopen($tmp_name, "rb");
$buffer = fread($fp, filesize($tmp_name));
fclose($fp);
# Descripción de la foto
$desc = $_POST["desc"];
$isoid=$_POST['tipo']=='oid'?true:false;
if(!$isoid){
# Escapa el contenido del archivo para ingresarlo como bytea
$buffer=pg_escape_bytea($buffer);
$sql = "INSERT INTO foo(nombre, descripcion, archivo_bytea, mime, size)
VALUES ('$nombre', '$desc', '$buffer', '$type', $size)";
}
else{
# Inicia una transacción
pg_query($link, "begin");
# Crea un objeto blob y retorna el oid
$oid=pg_lo_create($link);
$sql = "INSERT INTO foo(nombre, descripcion, archivo_oid, mime, size)
VALUES ('$nombre', '$desc', $oid, '$type', $size)";
}
# Ejecuta la sentencia SQL
pg_query($link, $sql) or die(pg_last_error($link));
if($isoid){
# Abre el objeto blob
$blob=pg_lo_open($link,$oid,"w");
# Escribe el contenido del archivo
pg_lo_write($blob,$buffer);
# Cierra el objeto
pg_lo_close($blob);
# Compromete la transacción
pg_query($link, "commit");
}
}
# Lista los archivos subidos a la base de datos
$sql = "select id, nombre, descripcion, coalesce(archivo_oid,-1) as archivo_oid,
coalesce(archivo_bytea,'-1') as archivo_bytea from foo;";
$result = pg_query($link, $sql);
$lista = "";
if($result){
while ($row=pg_fetch_array($result)){
$lista .= "<tr>\n";
$lista .= "<td>$row[nombre]</td>\n";
$lista .= "<td>$row[descripcion]</td>\n";
$lista .= "<td><img src='download.php?id=$row[id]' title='Algún título' />
<a href=\"index.php?id=$row[id]\" title=\"Intentará mostrar el contenido del archivo\">Ver</a> |
<a href=\"download.php?id=$row[id]&f=1\" title=\"Baja el archivo\">Bajar</a></td>\n";
$lista .= "</tr>\n";
}
}
pg_free_result($result);
pg_close($link);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Insertar archivos en un campo blob de PostgreSQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
</head>
<body>
<div id="contenedor">
<div id="cabecera"><h1>Insertar y recuperar un campo BLOB con PHP y PostgreSQL</h1></div>
<span class="msg"><?=$msg?></span>
Subir archivo:
<div id="postform">
<form name="frmblob" id="frmblob" method="post"
enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>">
<fieldset>
<label for="desc" accesskey="e">D<span class="key">e</span>scripción</label><br />
<input type="text" id="desc" name="desc" size="55" title="Descripción del archivo" /><br />
<label for="archivo" accesskey="r">A<span class="key">r</span>chivo</label><br />
<input type="file" id="archivo" name="archivo" title="Archivo a subir" size="40" /><br />
<label for="tipo" accesskey="i">T<span class="key">i</span>po</label><br />
<select name="tipo" id="tipo" title="Tipo de dato del campo en que se guardará el archivo">
<option value="bytea" title="bytea" selected>bytea</option>
<option value="oid" title="oid">oid</option>
</select><br />
<input type="submit" name="enviar" id="enviar" value="Guardar" />
</fieldset>
</form>
</div>
<div id="files">
<table>
<tr>
<th>Nombre</th>
<th>Descripción</th>
<th>Mostrar</th>
</tr>
<?=$lista?>
</table>
</div>
<div id="pie">
<a href="http://www.buayacorp.com" title="Programación y Diseño">BuayaCorp</a> © 2005<br />
<a href="http://creativecommons.org/licenses/by/2.0/">
<img src="ccsomerights.gif" alt="Licencia de Creative Commons" border="0">
</a>
</div>
</div>
</body>
</html>