lel
Ya realice el codigo fuente es el siguiente
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:
<?
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
$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.