Resulta que cuando subo un archivo, solo uno, este se sube, pero cuando intento subir la imagen y el pdf, solo se sube la imagen al servidor y para el pdf termina lanzando un error:
Código PHP:
http:/...../biblioteca/uploads/portadas/2672afdeee857f6ef282f7ffc16c6e4e.png
Error al subir el archivo PDF:
El tipo de archivo que esta tratando de subir no está permitido.
Código PHP:
if($this->form_validation->run("libro/validar")){
//determinar si actualizar portada
if($_FILES['portada']['size']==0){
$portada = $oldportada;
}else{
//procesar Portada
//validar foto:
$config['upload_path'] = './uploads/portadas/';
$config['allowed_types'] = 'jpg|png|';
$config['max_size'] = '5200'; //5Mb
$config['encrypt_name'] = TRUE;
$config['overwrite'] = FALSE;
$config['max_with'] = '1280';
$config['max_lenght'] = '720';
//cargar libreria
$this->load->library('upload', $config);
if(! $this->upload->do_upload('portada')){
$error = array('error' => $this->upload->display_errors());
//refrescar el formulario
$this->session->set_flashdata('ControllerMessage', $error["error"]);
//previamente se cargo la libreria session en autoload
//Se a definido la key de session en config.php
}
if($error==NULL){
//procesar datos Imagen
$img = $this->upload->data();
$nombre_img = $img['file_name'];
$portada = base_url().'uploads/portadas/'.$nombre_img;
echo $portada;
}else{
echo 'Error Al subir la imagen: '.$error["error"];
break;
}
}
//determinar si actualizar PDF
if($_FILES['pdfnuevo']['size']==0){
$pdf = $oldpdf;
}else{
//procesar Portada
//validar foto:
$config['upload_path'] = './uploads/libros/';
$config['allowed_types'] = 'pdf';
$config['max_size'] = '100000'; //kylobytes en MegaBytes = 100MB (100000 x 0.001) = 100Mb
$config['encrypt_name'] = TRUE;
$config['overwrite'] = FALSE;
//$config['max_with'] = '1280';
//$config['max_lenght'] = '720';
//cargar libreria
$this->load->library('upload', $config);
if(! $this->upload->do_upload('pdfnuevo')){
$error = array('error' => $this->upload->display_errors());
//refrescar el formulario
$this->session->set_flashdata('ControllerMessage', $error["error"]);
//previamente se cargo la libreria session en autoload
//Se a definido la key de session en config.php
}
if($error==NULL){
//procesar datos Imagen
$pdf_file = $this->upload->data();
$nombre_pdf = $pdf_file['file_name'];
$pdf = base_url().'uploads/libros/'.$nombre_pdf;
echo $pdf;
}else{
echo 'Error al subir el archivo PDF: '.$error["error"];
break;
}
}
Ya e revisado el archivo mimes.php que esta dentro del directorio "config" y ahi esta definido de que si se acepten archivos pdf:
'pdf' => array('application/pdf', 'application/x-download')
Por favor si alguien me da una sugerencia de que pueda hacer o me dice que esta mal , le agredesco.
PD: Tengo soluciones no muy recomendadas pero lo mejor es que el usuario modifique en un solo formulario ambos archivos. En el registro e considerado
que luego de registrar los datos del libro, excepto portada y pdf lo mando a otra
pagina para que ahi registre la portada primero, luego en la siguiente pagina, el pdf
asi me evitaria este problema actual. Sin embargo creo que no es optimo, por lo que
espero que me ayuden gracias.