Foros del Web » Programando para Internet » PHP »

PHP + MySQL + BLOB

Estas en el tema de PHP + MySQL + BLOB en el foro de PHP en Foros del Web. Hola a todos: les cuento que estoy trabajando con archivos almacenados como datos BLOB en la base de datos, y necesito que esos archivos se ...
  #1 (permalink)  
Antiguo 31/03/2004, 10:14
 
Fecha de Ingreso: febrero-2004
Ubicación: La Plata
Mensajes: 6
Antigüedad: 20 años, 1 mes
Puntos: 0
PHP + MySQL + BLOB

Hola a todos:
les cuento que estoy trabajando con archivos almacenados como datos BLOB en la base de datos, y necesito que esos archivos se puedan bajar desde la web, el tema es que probe varios ejemplos que andan dando vueltas y no funcionan, o sea no hacen lo que yo necesito, lo que hace el navegador es tratar de abrir el archivo(eso con Internet Explorer) lo probe con Mozilla porque me dijeron que IE tiene un bug respecto de ese tema pero tampoco funciona, encontre un ejemplo que lo que hace es forzar "la bajada" del archivo o sea pasanadole el nombre como parametro lo que hace es forzar a que aparezca la ventana que pregunta si lo queres bajar, abrir, etc. (justo lo que necesito) pero no funciona si le paso el nombre del archivo que obtuve de la base

si alguien puede darme una mano con esto se los agradeceria muchisimo!!

saludos
analau
  #2 (permalink)  
Antiguo 31/03/2004, 11:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues si dices tener un código que te funciona pero falla en algo concreto y localizado .. será mejor que pongas ese código y expliques donde tienes el problema ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 31/03/2004, 11:33
 
Fecha de Ingreso: febrero-2004
Ubicación: La Plata
Mensajes: 6
Antigüedad: 20 años, 1 mes
Puntos: 0
ok entonces aca va el codigo:

main1.php4

<?php
include "open_db.inc";

$sql = "SELECT * FROM tbl_Files ";
$sql .= "ORDER BY filename ASC";
$result = mysql_query($sql, $db);
$rows = mysql_num_rows($result);

echo "<table>\n";
echo " <tr>\n";
echo " <td>Filename</td>\n";
echo " <td>Type</td>\n";
echo " <td>Size</td>\n";
echo " <td>Description</td>\n";
echo " <td> </td>\n";
echo " </tr>\n";

for ($i = 0; $i < $rows; $i++) {
$data = mysql_fetch_object($result);

echo " <tr>\n";
echo " <td>$data->filename</td>\n";
echo " <td>$data->filetype</td>\n";
echo " <td>$data->filesize</td>\n";
echo " <td>( <a href='download1.php4?id=$data->filename'>Download</a> )</td>\n";
echo " <td>" . stripslashes($data->description) . "</td>\n";
echo " </tr>\n";
}
mysql_free_result($result);
mysql_close($db);
?>


download1.php

<?php

if ($id_files) {
include "conexion.php4";
$sql = "SELECT bin_data, filetype, filename, filesize FROM tbl_Files WHERE id_files='$id_files'";

$result = @mysql_query($sql, $db);
$data = @mysql_result($result, 0, "bin_data");
$name = @mysql_result($result, 0, "filename");
$size = @mysql_result($result, 0, "filesize");
$type = @mysql_result($result, 0, "filetype");

header("Content-Type: $type");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename=".$name."");
header("Content-Description: PHP Generated Data");
echo $data;
echo $size;
}

?>

el resto de codigo que falta es del formulario y la pagina que hace el insert en la base pero es igual al que pubicaste en este foro

gracias
saludos
analau
  #4 (permalink)  
Antiguo 31/03/2004, 12:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si algo que usa cabeceras HTTP (header() ) crees que no funciona como esperas .. lo ideal es quitarselas (comentarlas) para ver si PHP te arroja algún mensaje de error ...

A simple vista se ve:

Código PHP:
$sql "SELECT bin_data, filetype, filename, filesize FROM tbl_Files WHERE id_files='$id'"
fijate que usabas $id_files .. cuando por el link pasas la variable id de nombre .. no id_files

'download1.php4?id=$data->filename'

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/04/2004, 07:31
 
Fecha de Ingreso: febrero-2004
Ubicación: La Plata
Mensajes: 6
Antigüedad: 20 años, 1 mes
Puntos: 0
ok gracias, voy a intentar con esto que me decis ;)

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 21:41.