Foros del Web » Programando para Internet » PHP »

Recuperar Archivos de un campo Blob de SQL

Estas en el tema de Recuperar Archivos de un campo Blob de SQL en el foro de PHP en Foros del Web. Buenos días, a ver estoy un tanto perdido ya... Estoy haciendo una web para almacenar los millones de manuales que tienen en el trabajo, los ...
  #1 (permalink)  
Antiguo 12/02/2015, 02:25
 
Fecha de Ingreso: diciembre-2010
Ubicación: Armenia
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Pregunta Recuperar Archivos de un campo Blob de SQL

Buenos días, a ver estoy un tanto perdido ya...

Estoy haciendo una web para almacenar los millones de manuales que tienen en el trabajo, los manuales tienen diferentes extensiones,(PDF,.xls,doc...etc...)

bien, ya he hecho la tabla de sql y lo guarda todo bien:(Os enseño captura)



vale a la hora de mostrar los ficheros lo hace bien:


Y los PDF y los txt los abre sin problema:




Pero al abrir un documento Word, excel y demas me descarga un archivo php llamado igual que la pagina y con el contenido de la pagina y parte del contenido del word pero sale todo mal:



el codigo para mostrar las imagenes es este:

Código PHP:
<?php require_once('Connections/local.php'); ?><?php

if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 5) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$maxRows_DetailRS1 10;
$pageNum_DetailRS1 0;
if (isset(
$_GET['pageNum_DetailRS1'])) {
  
$pageNum_DetailRS1 $_GET['pageNum_DetailRS1'];
}
$startRow_DetailRS1 $pageNum_DetailRS1 $maxRows_DetailRS1;

$colname_DetailRS1 "-1";
if (isset(
$_GET['recordID'])) {
  
$colname_DetailRS1 $_GET['recordID'];
}
mysql_select_db($database_local$local);
$query_DetailRS1 sprintf("SELECT * FROM archivos  WHERE id = %s"GetSQLValueString($colname_DetailRS1"int"));
$query_limit_DetailRS1 sprintf("%s LIMIT %d, %d"$query_DetailRS1$startRow_DetailRS1$maxRows_DetailRS1);
$DetailRS1 mysql_query($query_limit_DetailRS1$local) or die(mysql_error());
$row_DetailRS1 mysql_fetch_assoc($DetailRS1);

if (isset(
$_GET['totalRows_DetailRS1'])) {
  
$totalRows_DetailRS1 $_GET['totalRows_DetailRS1'];
} else {
  
$all_DetailRS1 mysql_query($query_DetailRS1);
  
$totalRows_DetailRS1 mysql_num_rows($all_DetailRS1);
}
$totalPages_DetailRS1 ceil($totalRows_DetailRS1/$maxRows_DetailRS1)-1;

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">

<title><?php echo $row_DetailRS1['nombre']; ?> en <?php echo $row_DetailRS1['hostname']; ?> </title>
</head>

<body>

<?php 


header
('Content-type: '.$row_DetailRS1['tipo'] );
$contenido $row_DetailRS1['archivo'];
  

print 
$contenido;

?>
</body>
</html>
<?php
mysql_free_result
($DetailRS1);
?>
Teneis idea de que estoy haciendo mal?

Saludos! Y gracias de antemano!
  #2 (permalink)  
Antiguo 12/02/2015, 05:33
 
Fecha de Ingreso: diciembre-2010
Ubicación: Armenia
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Recuperar Archivos de un campo Blob de SQL

Up! Subo! Alguien?
  #3 (permalink)  
Antiguo 12/02/2015, 07:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Recuperar Archivos de un campo Blob de SQL

Cita:
Teneis idea de que estoy haciendo mal?
Dos cosas: No es buena práctica guardar archivos en la tabla. La politica general es guardar nombres y rutas, pero los archivos de imagen o documentos en carpetas privadas del servidor. Es más simple, facilita la recuperación, reduce las consultas y evitas penalizaciones de los hosting por exceso de trafico de datos.

Segunda cosa que haces mal: Las PDU de FDW, específicamente la 2.7 prohibe hacer UPD en los temas. Es motivo de infracción, y eliminación de los posts de UP.
Tenlo en cuenta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 12/02/2015, 10:42
 
Fecha de Ingreso: diciembre-2010
Ubicación: Armenia
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Recuperar Archivos de un campo Blob de SQL

Buenas tardes, a ver se que es mejor por rutas sin almacenarlo en la base de datos, pero es lo que me piden yo no puedo hacer otra cosa.
La cuestión es que hay algo mal en el código que necesito arreglar para poder recuperar los doc bien y demas, no tendré penalizaciones ni exceso de datos en el hosting porque es uno privado para una intranet asique esta todo de forma local.
Y perdón por lo del up, lo borro ahora (si puedo)

Saludos
  #5 (permalink)  
Antiguo 06/03/2015, 07:42
 
Fecha de Ingreso: diciembre-2010
Ubicación: Armenia
Mensajes: 20
Antigüedad: 14 años
Puntos: 0
Respuesta: Recuperar Archivos de un campo Blob de SQL

Nadie sabe nada del tema?
  #6 (permalink)  
Antiguo 06/03/2015, 08:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Recuperar Archivos de un campo Blob de SQL

Googleando: http://www.buayacorp.com/archivos/mo...ql-usando-php/

Segunda nota: No hagas UP. Ya te lo dije.
Si vas a respostear para actualizar el tema hazlo agregando mas información o lo scódigos de lo que intentaste después del ultimo post.
Si no haces un agregado que aporte, se considerará UP (PDU 2.7).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: blob, doc, ficheros, pdf, sql, xls
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 08:34.