Buenos dias, estoy grabando documentos (docx, xlsx) en mysql (long bob)
Este es el código de subida:
Código PHP:
$Doc_tmpname = $_FILES['documento']['tmp_name'];
$Doc_Tipo = $_FILES['documento']['type'];
$Doc_Nombre = $_FILES['documento']['name'];
$Doc_Tamano = $_FILES['documento']['size'];
$Doc_ext=pathinfo($Doc_Nombre, PATHINFO_EXTENSION);
$accion ="1";
$fp = fopen($Doc_tmpname, 'r');
$contenido = fread($fp, filesize($Doc_tmpname));
$contenido = addslashes($contenido);
fclose($fp);
/*Grabamos Documento*/
if($Doc_ext=="png"||$Doc_ext=="PNG"||$Doc_ext=="JPG"||$Doc_ext=="jpg"||$Doc_ext=="jpeg"||$Doc_ext=="JPEG"
||$Doc_ext=="pdf"||$Doc_ext=="PDF"||$Doc_ext=="doc"||$Doc_ext=="DOC"||$Doc_ext=="docx"||$Doc_ext=="DOCX"
||$Doc_ext=="XLS"||$Doc_ext=="xls"||$Doc_ext=="XLSX"||$Doc_ext=="xlsx"||$Doc_ext=="xlsm"||$Doc_ext=="XLSM")
{
$Activo=1;
$grabadocumento = $mysqli->prepare("INSERT INTO tb_documento (Nombre,Tipodoc,Fecha,Activo,Data,ID_Empresa,Size) VALUES ('$Doc_Nombre','$Doc_Tipo', '$Fecha','$Activo','$contenido','$ID_Empresa','$Doc_Tamano')");
$grabadocumento->execute();
$grabadocumento->close();
}
y este es el de descarga
Código PHP:
$ID_Documento = $_GET['ID_Documento'];
$consulta = "SELECT Nombre, Tipodoc, Data, Size FROM tb_documento WHERE ID_Documento=$ID_Documento";
$resultado=$mysqli->query($consulta);
$fila = $resultado->fetch_assoc();
$Doc_data = $fila['Data'];
$Doc_nombre = $fila['Nombre'];
$Doc_tipo = $fila['Tipodoc'];
$Doc_size = $fila['Size'];
header("Content-length: $Doc_size");
header("Content-type: $Doc_tipe");
header("Content-Disposition: attachment; filename=$Doc_name");
ob_clean();
flush();
echo $Doc_data;
$resultado->free();
exit;
El problema es que al descargarlo abre el archivo y sale este mensaje
"El archivo XXXXX.docx no puede abrirse porque hay problemas con el contenido"
Luego que se le da aceptar sale:
"Word encontro contenido no legible. ¿Desea recuperar el contenido de este documento?"
Le das aceptar y se abre, pero la idea es que esto no aparezca pues se ve mal.
Ya hice echo de los datos que trae desde la tabla y son estos:
$Doc_tipo= application/vnd.openxmlformats-officedocument.wordprocessingml.document
$Doc_size= 1530
$Doc_nombre= nombre.docx
Que podria ser?
uso PHP:7.0.15
y Mysql : 5.6.32
Saludos