Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2008, 17:54
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
descargar archivos de BD MySQL

Hola:

uso unos script de la red concretamente de:

http://www.programacion.net/php/articulo/datos_blob/

que son:

para cargar un archivo a MySQL mediante form simple

<?
/* guardar_archivo.php */

mysql_connect('localhost','user','9999')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$archivo = $_FILES["archivito"]["tmp_name"];
$tamanio = $_FILES["archivito"]["size"];
$tipo = $_FILES["archivito"]["type"];
$nombre = $_FILES["archivito"]["name"];
$titulo = $_POST["titulo"];

if ( $archivo != "none" )
{
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);

$query = "INSERT INTO archivos
VALUES (0,'.$nombre.','.$titulo.','.$contenido.','.$tipo. ')";
mysql_query($query) or die(mysql_error());
echo "El archivo '.$nombre.' ha sido cargado de manera satisfactoria.<br />";


}


?>



con este ecript recupero la lisra de los archivos subido y formateada:



<?php
mysql_connect('localhost','juser','9999')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$qry = "SELECT nombre, titulo, tipo FROM archivos";
$res = mysql_query($qry);

while($fila = mysql_fetch_array($res))
{
echo "<table width=70%><tr bgcolor= #61e877><div align=center>";

echo "<b>Titulo: </b>";
echo $fila[titulo];
echo "</div></tr>";
echo"<tr>&nbsp;</tr>";
echo "<tr><b>Nombre: </b>";
echo $fila[nombre];
echo "</tr>";
echo"<tr>&nbsp;</tr>";
echo "<tr><div align=center><a href='descargar_archivo.php?id=$fila[id]'>Descargar</a></div>";
echo "</tr>";
echo"<tr>&nbsp;</tr>";
echo "<hr>" ;
echo "</table>" ;


}

?>

He ido introduciendo modificaciones al codigo original de formateo de los resultados de la consulta a la BD.


Y por ultimo el scrip que se supone que me iniciara la descarga del archivo que quiera de la BD con el link creado en el codigo anterior, asociado a la BD.


<?php

mysql_connect('localhost','userr','9999')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());




$qry = "SELECT tipo, contenido FROM archivos WHERE id=$id";
$res = mysql_query($qry);
$tipo = mysql_query($res,"tipo"); //line 11
$contenido = mysql_query($res,"contenido"); // line12

header("Content-type: $tipo"); //line 14
print $contenido;

?>


Me dan error las siguentes lineas despues de que toda la aplicacion funciona.


$tipo = mysql_query($res,"tipo");
$contenido = mysql_query($res,"contenido");
header("Content-type: $tipo");


El error es del siguiente tipo:


Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\descargar_archivo.php on line 11

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\descargar_archivo.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\descargar_archivo.php:11) in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\descargar_archivo.php on line 14

Sabria alguien que hago mal, despues de romperme el coco muchos dias.
Gracias.