Buenas, les comento la situación antes de explicar el problema. Estoy desarrollando una pequeña aplicación web que precisamente es un sistema para el registro de usuarios y proyectos en un sitio web de ingenieria. Para los proyectos el sistema debe permitir subir tanto archivos PDF como archivos CAD, estos ultimos pueden tener un tamaño maximo de 10MB. El problema surge cuando quiero subir los archivos PDF y CAD, o uno de los dos. En cualquier navegador que no sea IE funciona perfectamente, pero necesito que funcione tambien en IE. Aca los codigos.
require_once $_SERVER['DOCUMENT_ROOT'] .'/ingenierialtda/SERVICES/ProyectoService.php';
$ps = new ProyectoService();
$return = Array('OK' => TRUE);
$upload_folder = $_SERVER['DOCUMENT_ROOT'] .'/ingenierialtda/FILES';
$nombre_archivo = $_FILES['archivo']['name'];
$tipo_archivo = $_FILES['archivo']['type'];
$tamano_archivo = $_FILES['archivo']['size'];
$tmp_archivo = $_FILES['archivo']['tmp_name'];
$archivador = $upload_folder .'/'. $nombre_archivo;
if (!move_uploaded_file($tmp_archivo, $archivador))
{
$return = Array('OK' => FALSE, 'MSG' => 'Ocurrio un error al subir el archivo. No pudo guardarse.', 'STATUS' => 'error');
}
$datos['u'] = $_GET['u'];
$datos['cod'] = $_GET['cod'];
$datos['nap'] = $nombre_archivo;
$datos['nac'] = $nombre_archivo;
if($tipo_archivo == "application/pdf"){
$resp = $ps->guardarArchivoPDF($datos);
}
if($tipo_archivo == "application/octet-stream"){
$resp = $ps->guardarArchivoCAD($datos);
}
$d["tipo"] = $tipo_archivo;
$d["tamano"] = $tamano_archivo;
echo json_encode($return);
?>
Como pueden ver, nisiquiera tengo una restricción para el tamaño, porque eso lo pretendo hacer con Jquery. Aca el codigo AJAX
function archivoPDF()
{
var datos = "u=<?php echo $de; ?>&cod="+ $('[name=cod]').val();
var inputFileImage = document.getElementById('archivoPDF');
var file = inputFileImage.files[0];
var data = new FormData();
data.append('archivo',file);
$.ajax({
url: "/ingenierialtda/RESTFUL/RestArchivo.php?"+ datos,
type: "POST",
contentType: false,
data: data,
processData: false,
cache: false,
error:function (jqXHR, textStatus, errorThrown){
alert("Error");
$('#guardandoDatosProyecto').css({'display':'none'});
window.location.reload();
},
success: function(data){
if($('[name=nac]').val() !== ""){
archivoCAD();
}
if($('[name=nac]').val() === ""){
$('#guardandoDatosProyecto').css({'display':'none'});
$('#guardarProyecto').css({'display':'block'});
$('#guardarDatosProyecto').css({'display':'block'});
$('#volverGuardarProyecto').css({'display':'block'});
alert("Proyecto guardado exitosamente");
window.location.href = "/ingenierialtda/proyecto.php?au=<?php echo $_GET['au']; ?>";
}
}
});
}
Y el simple input
<input id ="archivoPDF" type="file" name="nap" />
En IE tratando de comprobar que sucedia con las Herramientas de Desarrollo que este incorpora, cuando manda la solicitud queda en estado pendiente y nunca sale de ese estado. Probe con un archivo txt de 300b y da el caso que funciono, pero si intento subir algo de mas de 1KB vuelve al esta pendiente. Necesito de su ayuda, cualquier comentario es bien recibido. Gracias y saludos. .