Foros del Web » Programando para Internet » PHP »

descargar archivos de BD MySQL

Estas en el tema de descargar archivos de BD MySQL en el foro de PHP en Foros del Web. 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 */ ...

  #1 (permalink)  
Antiguo 25/02/2008, 17:54
Avatar de 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.
  #2 (permalink)  
Antiguo 25/02/2008, 18:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Te esta diciendo que el tipo de parámetro que envias a la funcion mysql_query esta incorrecto, si ya hiciste el query no es necesario enviarlo correctamente, deja tu script así:
Código PHP:
<?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) or die( mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];

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

?>
Saludos.
  #3 (permalink)  
Antiguo 25/02/2008, 19:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Tienes razon, Muchas Gracias, ma han desaparecido lo errores anteriores, pero ahora sale el siguiente:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
gracias
  #4 (permalink)  
Antiguo 25/02/2008, 20:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Ese error te indica que tienes un problema en tu query, yo creo el problema es que no esta descargando el id correctamente, prueba usar $id = $_GET['id'] antes de hacer tu query.

Saludos.
  #5 (permalink)  
Antiguo 25/02/2008, 21:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Nada, lo ponga donde ponga el script me da error la suguienye linea de codigo, es decir, si lo pongo antes que el query me da error:

Parse error: parse error, unexpected T_VARIABLE in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\descargar_archivo.php on line 78 linea que es la del query.

y si lo pongo antes de otra linea me da el mismo error pero de la linea siguiente.
por mas que me rompo la cabeza no sale,

si quieres te paso todo el script por partes, es una aplicacion interesante, si termina por bajarme los archivos, y a demas el resultado del query a la bd para que aparezcan los archivos que quiero que los visitantes se descargen esta formateados en una tabla, y paginados con PAGINATOR. creo que es una aplicacion interesante y sencilla si no fuera por el detalle de que no descarga archivos.
  #6 (permalink)  
Antiguo 25/02/2008, 21:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Pruebalo asi:
Código PHP:
<?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());

$id $_GET['id'];
$qry "SELECT tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];

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

?>
Saludos.
  #7 (permalink)  
Antiguo 25/02/2008, 21:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Gracias pero he probado de nueco con el escript que me has dado y me da error

Error en Query: SELECT tipo, contenido FROM archivos WHERE id=, error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
bueno seguire rompiendome el coco, Gracias.
  #8 (permalink)  
Antiguo 26/02/2008, 07:30
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

si dejo el ecript como dices falla el query:

Error en Query: SELECT tipo, contenido FROM archivos WHERE id=, error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

es un error extraño y por mas que me rompo el coco nom consigo nada,
Gracias.
  #9 (permalink)  
Antiguo 26/02/2008, 07:41
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: descargar archivos de BD MySQL

El error te da porque no esta recuperando ningun ID el problema viene de este tu primer codigo fijate bien

Código PHP:
<?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"// Debes seleccionar el id que aqui no lo tienes
$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>"// Para que lo puedas listar
echo "</tr>";
echo
"<tr>&nbsp;</tr>";
echo 
"<hr>" ;
echo 
"</table>" ;


}

?>
No estas seleccionando el id en tu consulta deberia ser asi
Código PHP:
$qry "SELECT id, nombre, titulo, tipo FROM archivos"
Y luego lo recuperas como te han indicado en el post anterior con $_GET['id'].

Saludos.
  #10 (permalink)  
Antiguo 26/02/2008, 08:01
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Mira, lo he paginado con PAGINATOR y muestra muy bien los resultados, es un buen script, pero nisiquiera incluyendo id como ves el codigo no hacer la descarga.

Código PHP:


//archivo que muestra paginado el resultado de una consulta a DB

$_pagi_sql "SELECT   id, nombre, titulo, tipo FROM archivos";
//$res = mysql_query($_pagi_sql);

/*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>" ;}*/



    
    //Sentencia sql (sin limit)
//$_pagi_sql = mysql_result($res);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 2;//Elegí un número pequeño para que se generen varias páginas

//cantidad de enlaces que se mostrarán como máximo en la barra de navegación
$_pagi_nav_num_enlaces 3;//Elegí un número pequeño para que se note el resultado

//Decidimos si queremos que se muesten los errores de mysql
$_pagi_mostrar_errores false;//recomendado true sólo en tiempo de desarrollo.

//Si tenemos una consulta compleja que hace que el Paginator no funcione correctamente, 
//realizamos el conteo alternativo.
$_pagi_conteo_alternativo true;//recomendado false.

//Supongamos que sólo nos interesa propagar estas dos variables
$_pagi_propagar = array("id","termino");//No importa si son POST o GET

//Definimos qué estilo CSS se utilizará para los enlaces de paginación.
//El estilo debe estar definido previamente
$_pagi_nav_estilo "paginacion";

//definimos qué irá en el enlace a la página anterior
$_pagi_nav_anterior "&lt;";// podría ir un tag <img> o lo que sea

//definimos qué irá en el enlace a la página siguiente
$_pagi_nav_siguiente "&gt;";// podría ir un tag <img> o lo que sea

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){

echo 
"<table width=70%><tr bgcolor= #61e877><div align=center>";

echo 
"<b>Titulo: </b>";
echo 
$row[titulo];
echo 
"</div></tr>";
echo
"<tr>&nbsp;</tr>";
echo 
"<tr><b>Nombre: </b>";
echo 
$row[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>" ;
}










//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";

//Incluimos la información de la página actual
echo"<p>Mostrando archivos ".$_pagi_info."</p>"

y el script de descarga lo he dejado como dijisteis pero sigue sin encontrar el id
Gracias,

Que calor hace hoy en Sevilla!!!
  #11 (permalink)  
Antiguo 26/02/2008, 08:06
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: descargar archivos de BD MySQL

No estas mandando el resultado de tu consulta a ningun cursor deberia ser asi:
Código PHP:
 // Tu consulta
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() ); 
Y ahora si puedes recorrer el array de tu consulta. con el bucle while
Código PHP:
while($row mysql_fetch_array($_pagi_result)){ 
Saludos.
  #12 (permalink)  
Antiguo 26/02/2008, 08:26
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Gracias, de verdad, pero es que ahora me estoy liando,
no se como combinar estas dos lineas:

Código PHP:
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() );

 
$_pagi_sql "SELECT   id, nombre, titulo, tipo FROM archivos"
  #13 (permalink)  
Antiguo 26/02/2008, 08:47
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: descargar archivos de BD MySQL

No tienes que combinar nada es el orden de tus consultas

Código PHP:
$_pagi_sql "SELECT   id, nombre, titulo, tipo FROM archivos"
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() ); 
Creas la consulta y le agregas el resultado a un cursor y eso es todo.

Saludos.
  #14 (permalink)  
Antiguo 26/02/2008, 08:57
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Entonces me da error de codigo en esa linea:

Código PHP:
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() ); 
no se si sera por que no tengo definida la variable $conexion
Gracias.
  #15 (permalink)  
Antiguo 26/02/2008, 08:59
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: descargar archivos de BD MySQL

Puede ser, esa variable es la de tu conexion con el servidor escribela como la has llamado solo la puse como un ejemplo.

Código PHP:
$conexion mysql_connect("localhost""usuario""password"); 
Saludos.
  #16 (permalink)  
Antiguo 26/02/2008, 09:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Ya he declarado la variable:
Código PHP:
 $conexion 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());
 
 
$_pagi_sql "SELECT   id, nombre, titulo, tipo FROM archivos";  
$_pagi_result mysql_query($_pagi_sql $conexion) or die ( mysql_error() ); 
y mas abajo de este archivo he cambiado la linea

Código PHP:
echo "<tr><div align=center><a href='descargar_archivo.php?id=$file[id]'>Descargar</a></div>"
por esta otra:

Código PHP:
echo "<tr><div align=center><a href='descargar_archivo.php?id=$row[id]'>Descargar</a></div>"
he cambiado la variable $file por $row, que creo que es mas correcto,
pero ahora me da error el header del archivo que procesa la descarga, llamado descargar_archivos.php

esta es la linea del error:

Código PHP:
header("Content-type: $tipo"); 
y el script completo es:

Código 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());

$id = $_GET['
id];
$qry "SELECT tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];

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

es para volverse loco.
Gracias.
  #17 (permalink)  
Antiguo 26/02/2008, 09:23
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: descargar archivos de BD MySQL

Y cual es el error que te arroja? asi por encima te faltan algunas comillas aqui:

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

$id $_GET['id']; // Faltaba una comilla 


Saludos.
  #18 (permalink)  
Antiguo 26/02/2008, 09:31
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

ma arroja este error:

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

Ya me he dado cuenta de las comillas, ha sido al cambiar los valores para no mostrar mi user y passwor y he borrado las comillas sin querer, pero en el codigo que tengo esta puestas.

Gracias.
  #19 (permalink)  
Antiguo 26/02/2008, 09:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Que código tienes en la linea 8?

Saludos.
  #20 (permalink)  
Antiguo 26/02/2008, 09:49
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

el codigo de la linea 84 es:

Código PHP:
header("Content-type: $tipo"); 
y el codigo este, que esta bdentro de un HTML

Código 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());

$id $_GET['id'];
$qry "SELECT tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];    //linea 84

header("Content-type: $tipo"); 
print 
$contenido
  #21 (permalink)  
Antiguo 26/02/2008, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Tu problema es que el código lo tienes dentro de un HTML, para que el archivo se pueda descargar debe de estar en un PHP independiente sin código HTML.

Saludos.
  #22 (permalink)  
Antiguo 26/02/2008, 10:06
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

que va, he puesto en el archivo codigo PHP y me sigue dando el mismo error pero cambiando la linea claro.


Código 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());

$id $_GET['id'];
$qry "SELECT tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];

header("Content-type: $tipo");   //linea 20
print $contenido
y el error el mismo:

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

Un saludo
  #23 (permalink)  
Antiguo 26/02/2008, 10:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Cual es la linea 4?

Saludos.
  #24 (permalink)  
Antiguo 26/02/2008, 10:12
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Perdon, no actualice la pagina y salia el mismo error pero ahora no arroja error,
simplemente se queda la pantalla en blanco y no hace nada.

y en la barra de direccionj se queda asi:

descargar_archivo.php?id=3

como si no encontrara la id aunque como ves el navegador intenta darme el archivo que tiene la id=3 pero ya te digo, que la pantalla se queda en blanco.
sin arrojar error
Gracias.
  #25 (permalink)  
Antiguo 26/02/2008, 10:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Busca en las FAQs del foro, hay un código mas robusto para descargar archivos de contenido binario de la BD.

Saludos.
  #26 (permalink)  
Antiguo 26/02/2008, 15:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Hola de nuevo, me he revisado todas las FAQs de php y no he encontrado nada que se parezca a esta aplicacion, o no he sabido verla, venga que ya casi esta acabada la aplicacion, solo falta la parte final que descarga el archivo.
Gracias.
  #27 (permalink)  
Antiguo 26/02/2008, 15:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: descargar archivos de BD MySQL

Prueba este código:
Código 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());

$id $_GET['id'];
$qry "SELECT titulo, tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];
$titulo $row['titulo'];

header"Content-Disposition: attachment; filename=".$titulo."");
header"Content-type: application/octet-stream" );

print 
$contenido
Saludos.
  #28 (permalink)  
Antiguo 26/02/2008, 15:47
(Desactivado)
 
Fecha de Ingreso: febrero-2008
Ubicación: Argentina, Santa Fe, Rosario
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: descargar archivos de BD MySQL

Código PHP:
<?php
function expresiones($mensaje) { 
$mensaje str_replace(":)","<img src='smiles/smile_regular.gif'>"$mensaje); 
return 
$mensaje
}
$mostrar 100

    
$host "localhost"//poner aquí el host de MySQL del servidor que useis. suele ser localhost
    
$user "root"//poner aqui el nombre de usuario
    
$pass "****"//aqui el pass
    
$dbname "comentarios";

//---------------------------------------------------

$conecta mysql_connect($host,$user,$pass); //conecta a la db
mysql_select_db($dbname,$conecta); //selecciona la tuya

$query "select * from comentarios order by id desc";
$resp mysql_query($query);
while (
$datos mysql_fetch_array($resp)) {
if (
$mostrar 0) {
echo 
"
<font face=arial size=2>Nombre: $datos[nombre]<br>
Email: $datos[email]<br>
Web: $datos[web]<br>
Comentarios:<br>
$datos[comentarios]
</font><br>
<hr width=281 noshade>"
;
$mostrar--;
}
}
mysql_query($query); //insertamos el dato
mysql_close($conecta); //cierra la conexion

?>

Esto capaz que te funcine o sirva para algo...

Donde dice por ejemplo $datos[web] es $datos[nombre del campo]


Este código se ordena por medio del id
Suerte!
  #29 (permalink)  
Antiguo 26/02/2008, 15:52
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: descargar archivos de BD MySQL

Gracias, pero ya probe el otro dia con un script parecido al que me has corregido, si que me fuerza la descarga, pero los nombra a todos los archivos que intento descargar con el nombre del propio archivo php osea, descargar_archivo.php y no solo eso, si no que me los descargo vacios.
intentare probar con otra cosa, ya te dire si fue bien, y dejare el script si es que funciona.
Gracias.
  #30 (permalink)  
Antiguo 17/07/2008, 10:23
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Re: descargar archivos de BD MySQL

Cita:
Iniciado por GatorV Ver Mensaje
Prueba este código:
Código 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());

$id $_GET['id'];
$qry "SELECT titulo, tipo, contenido FROM archivos WHERE id=$id";
$res mysql_query($qry) or die( "Error en Query: $qry, error: " mysql_error() );
$row mysql_fetch_row$res );
$tipo $row["tipo"];
$contenido $row["contenido"];
$titulo $row['titulo'];

header"Content-Disposition: attachment; filename=".$titulo."");
header"Content-type: application/octet-stream" );

print 
$contenido
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:39.