Foros del Web » Programando para Internet » PHP »

Descarga de archivos de la bd con PHP

Estas en el tema de Descarga de archivos de la bd con PHP en el foro de PHP en Foros del Web. Hola, estoy tratando de almacenar archivos en la bd para después poder poder descargarlo, al momento de guardarlos en la bd lo hace de manera ...
  #1 (permalink)  
Antiguo 28/05/2014, 12:28
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Información Descarga de archivos de la bd con PHP

Hola, estoy tratando de almacenar archivos en la bd para después poder poder descargarlo, al momento de guardarlos en la bd lo hace de manera correcta, pero al ejecutar el archivo de descarga en google chrome me agrega un guión en la extensión (Algo así: Ejemplo.pdf-) lo que imposibilita el uso de ese archivo, si me pudieran dar una idea del por que se los agradecería bastante


<?php
$con = mysql_connect("localhost", "root", "")or die("Problemas al realizar la conexión con el servidor");
mysql_select_db("nombrebd", $con) or die ("No se puede realizar la conexión a la base de datos".mysql_error());

//$extenciones es un arreglo que permite los tipos de extensiones de los archivos
$extenciones = array(
'txt' => 'text/plain',
'htm' => 'text/html',
'html' => 'text/html',
'php' => 'text/html',
'css' => 'text/css',
'js' => 'application/javascript',
'json' => 'application/json',
'xml' => 'application/xml',
'swf' => 'application/x-shockwave-flash',

// images
'png' => 'image/png',
'jpe' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'ico' => 'image/vnd.microsoft.icon',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'svg' => 'image/svg+xml',
'svgz' => 'image/svg+xml',

// archives
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
'exe' => 'application/x-msdownload',
'msi' => 'application/x-msdownload',
'cab' => 'application/vnd.ms-cab-compressed',

// adobe
'pdf' => 'application/pdf',

// ms office
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
);
//$id = $_GET['idarchivos'];
$id = $_GET['idarchivos'];
$query = "SELECT tipo, archivo, nombre FROM archivos WHERE idarchivos = '$id'";
$resultado = mysql_query($query)or die(mysql_error());
$tipo = mysql_result($resultado, 0, "tipo");
$contenido = mysql_result($resultado, 0, "archivo");
$nombre = mysql_result($resultado, 0, "nombre");
header('Content-Type: application/force-download');
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-type: $tipo");
header('Content-disposition: attachment; filename="'.$nombre.'.'.$extenciones[$tipo].'"');
echo $contenido;

?>
  #2 (permalink)  
Antiguo 28/05/2014, 12:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Descarga de archivos de la bd con PHP

¿Sabes trabajar con arrays?

¿Qué tipo de valor tiene $tipo?

Porque suponiendo que $tipo es "txt" devolvería tu array "text/plain" y eso efectivamente no sirve.

Ahora, que si $tipo es "text/plain" entonces tu array está al revés, y para obtener la extensión deberías usar array_search().

Sería interesante ver que valores traen tus variables, de otra forma es adivinar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/05/2014, 13:17
 
Fecha de Ingreso: abril-2013
Mensajes: 7
Antigüedad: 11 años
Puntos: 0
Respuesta: Descarga de archivos de la bd con PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Sabes trabajar con arrays?

¿Qué tipo de valor tiene $tipo?

Porque suponiendo que $tipo es "txt" devolvería tu array "text/plain" y eso efectivamente no sirve.

Ahora, que si $tipo es "text/plain" entonces tu array está al revés, y para obtener la extensión deberías usar array_search().

Sería interesante ver que valores traen tus variables, de otra forma es adivinar.
los campos que utilizo son:
tipo = almacena el tipo de archivo text/plain
archivo = el contenido del archivo
nombre = el nombre del archivo

El resultado que arroja si es correcto, ya que me devuelve el archivo con la extensión correcta, pero al momento de la descarga agrega una guión- al final de la extensión lo cual vuelve obsoleto el archivo (algo así: nombre.pdf-) eso solo lo hace en chrome, si ejecuto el mismo archivo en firefox lo corre de manera normal, y permite la descarga



Etiquetas: Ninguno
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 04:52.