Foros del Web » Programando para Internet » PHP »

Almacenando Archivos?

Estas en el tema de Almacenando Archivos? en el foro de PHP en Foros del Web. Hola Tengo un formulario para capturar datos junto con archivos que se almacenaran en la DB, utilizo LAMP, todo funciona por decirlo asi, me acaba ...
  #1 (permalink)  
Antiguo 18/11/2004, 14:42
 
Fecha de Ingreso: julio-2003
Ubicación: Queretaro Qro.
Mensajes: 131
Antigüedad: 14 años, 4 meses
Puntos: 1
Almacenando Archivos?

Hola

Tengo un formulario para capturar datos junto con archivos que se almacenaran en la DB, utilizo LAMP, todo funciona por decirlo asi, me acaba de surgir un problema cuando quieren agregar archivos en especial de tipo excel y con macros me truena la aplicación, si almaceno un archivo sin macros lo ingresa sin problemas.

Que puedo hacer...

Asi almaceno los archivos en la DB

Código PHP:
...
    
$archivo $_FILES["archivito"]["tmp_name"];
    
$tamanio $_FILES["archivito"]["size"];
    
$tipo $_FILES["archivito"]["type"];
    
$documento $_FILES["archivito"]["name"];

    if (
$archivo == "") {
      
header ("Location: $PHP_SELF?accion=nuevo&error=1");
      exit;
    }

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

      
$qry "INSERT INTO $sqlDoc VALUES ('','$documento','$contenido','$tipo')";
... 
Si tienen alguna sugerencia o comentarios se los agradecere, no se si el problema este realmente en los macros que utiliza el excel. de cualquier forma gracias.
__________________
Kike Lee
Paz && Bien
  #2 (permalink)  
Antiguo 18/11/2004, 15:21
 
Fecha de Ingreso: julio-2003
Ubicación: Queretaro Qro.
Mensajes: 131
Antigüedad: 14 años, 4 meses
Puntos: 1
Un sigo aqui

Hola

He estado biendo la documentacion de PHP http://mx.php.net/es/fopen y lo recomendable es usar "rb" para forzar a ver el file en modo binario, en realidad hay otra forma de subir el file sin que le cueste trabajo hacerlo o realmente no puede hacer ningun tipo de tratamienta ya que es un file de tipo .xls y con macros, neta no se me ocurre nada espero y me puedan ayudar Gracias.

__________________
Kike Lee
Paz && Bien
  #3 (permalink)  
Antiguo 18/11/2004, 15:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo uso la técnica que describí en este mini-tutorial .. sin problemas.

http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/

El orden de usar addslashes() no es el correcto .. fijate:

Código PHP:
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal))); 
Un saludo,
  #4 (permalink)  
Antiguo 18/11/2004, 17:17
 
Fecha de Ingreso: julio-2003
Ubicación: Queretaro Qro.
Mensajes: 131
Antigüedad: 14 años, 4 meses
Puntos: 1
Algo que me falte, no se?

Gracias por tus comentarios Cluster

Sabes he probado el orden que utilizas para obtener el contenido de tu ejemplo y pues si funciona, pero sigo teniendo el mismo problema con el citado archivo de excel, no se hasta donde sea problema de que este archivo contenga macros, pero he probando en mi linux y un Win y al momento de querer subir el archivo me manda un mensaje de "The document contains no data", si subo otro archivo de excel pero sin macros lo acepta sin problemas

Pues como siempre gracias por sus comentarios, si hay algo mas que pueda hacer se los agradecere.

Anexo el codigo que he modificado....
Código PHP:

// He comentado lo que tenia 
...
    
$archivo $_FILES["archivito"]["tmp_name"];

    
//$tamanio = $_FILES["archivito"]["size"];
    //$tipo = $_FILES["archivito"]["type"];
    //$documento = $_FILES["archivito"]["name"];

    
if ($archivo == "") {
      
header ("Location: $PHP_SELF?accion=nuevo&error=1");
      exit;
    }

    if ( 
$archivo != "none" ) {

      
//$fp = fopen($archivo, "r");
      // $contenido = fread($fp, $tamanio);
      //$contenido = addslashes($contenido);

      
$contenido addslashes(fread(fopen$archivo"rb"), filesize$archivo))); 

      
//fclose($fp);

    
$tamanio $_FILES["archivito"]["size"];
    
$tipo $_FILES["archivito"]["type"];
    
$documento $_FILES["archivito"]["name"];

      
$qry "INSERT INTO $sql_tabla_tDoc VALUES ('','$documento','$contenido','$tipo','$usuario_id')";

      
mysql_query($qry)
       or die(
"No se pudo realizar la consulta a la Base de datos yo");
    }
... 
__________________
Kike Lee
Paz && Bien
  #5 (permalink)  
Antiguo 18/11/2004, 19:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mmm.. realmente extraño ..

No sé si usaras algún proxy, firewall o antivirus por médio entre el "cliente" (tu navegador) y el servidor .. pero, revisalo por si está filtrando el contenido.

Un saludo,
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 22:01.