elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Ayuda Archivos Base 64 SQL Server PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda Archivos Base 64 SQL Server PHP  (Leído 1,906 veces)
ElInquisidor

Desconectado Desconectado

Mensajes: 97


¿Vivo o muerto? Mejor simplemente Muerto


Ver Perfil
Ayuda Archivos Base 64 SQL Server PHP
« en: 27 Abril 2016, 01:58 am »

Tengo guardados en base 64 archivos Office y PDF.


No se como convertirlos de nuevo a lo que eran y descargarlos.



Alguien sabe como puedo lograr esto.



Saludos


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda Archivos Base 64 SQL Server PHP
« Respuesta #1 en: 27 Abril 2016, 04:55 am »

http://php.net/manual/es/function.base64-decode.php
http://php.net/manual/es/function.base64-encode.php


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ElInquisidor

Desconectado Desconectado

Mensajes: 97


¿Vivo o muerto? Mejor simplemente Muerto


Ver Perfil
Re: Ayuda Archivos Base 64 SQL Server PHP
« Respuesta #2 en: 27 Abril 2016, 18:20 pm »

lel


Ya realice el codigo fuente es el siguiente

Código:

function Buscar_archivo_BD($fichero,$identificador,$nombre_archivo){

 $dbx = new db();

 $query = "SELECT archivo FROM doc_archivos WHERE nombre ='".$fichero."' ORDER BY id DESC  ";
 $dbx->Query($query);


 if($dbx->next_record()){
    $archivo_b64 = $dbx->Info("archivo");
 }


$archivo_final =  base64_decode($archivo_b64);



copy($archivo_final, $fichero);

return 1;

}



Creo que esto solo aplica  para strings... pues lo que tengo codificado en base 64 guardado en base de datos son archivos office y PDF.

Al parecer creo que el base64_decode si esta realizando su funcion ya que cuando lo imprimo si modifica y hace "entendible" el string....



:(


Alguien sabe como hago para volver a la normalidad este archivo que estaba en base 64....

Hola De nuevo hice la modificacion del codigo fuente agregando lo siguiente:


Código:
<?



function Buscar_archivo_BD($fichero,$identificador){


$cosito = explode("/", $fichero);

$ruta = $cosito[0]."/".$cosito[1]."/";

$nombre_archivo_final = $cosito[2];




 $dbx = new db();

 $query = "SELECT archivo FROM doc_archivos WHERE nombre ='".$fichero."' ORDER BY id DESC  ";
 $dbx->Query($query);
 if($dbx->next_record()){
    $archivo_b64 = $dbx->Info("archivo");
 }


$archivo_final =  base64_decode($archivo_b64);



file_put_contents($ruta."/".$nombre_archivo_final, $archivo_final);

return 1;

}
?>



Si lo guarda en el servidor en una carpeta especifica pero al abrirlo el archivo aparece dañado.


Tengo otro script que lo que hace es convertir eso en base 64 y descargarlo.

Este si funciona pero no se como hacer para que guarde en el servidor este archivo y que no lo descargue.


- Les comparto el código

Código:
$res = $db->dpsql_query($query);
if($arr = $db->dpsql_fetch_array($res)){
$pos = (strstr($archivo, "/"))?strrpos($archivo, "/")+1:0;
$nombre = substr($archivo, $pos);
$content = stripslashes($f->decode($arr['archivo']));
$informacion = pathinfo($archivo);
$extension = $informacion['extension'];

if($extension=="xls"){
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: inline; filename="documento.xls"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if($extension=="xlsx"){
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: inline; filename="documento.xlsx"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if ($extension=="doc"){
header('Content-Type: application/msword');
header('Content-Disposition: inline; filename="documento.doc"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if ($extension=="docx"){
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Disposition: inline; filename="documento.docx"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if ($extension=="ppt"){
header('Content-Type: application/vnd.ms-powerpoint');
header('Content-Disposition: inline; filename="documento.ppt"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if ($extension=="pptx"){
header('Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation');
header('Content-Disposition: inline; filename="documento.ppt"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}
else if ($extension=="pdf"){
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="documento.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. strlen($content));
header('Connection: Close');
set_time_limit(0);
echo $content;
}

}else{
echo "Archivo no encontrado";
}

Saludos,



Si alguien sabe como con el segundo script puedo capturar el archivo de alguna manera y guardarlo se los agradeceria.


« Última modificación: 27 Abril 2016, 21:17 pm por ElInquisidor » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines