Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/12/2015, 19:34
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 9 meses
Puntos: 6
Respuesta: Subir Imágenes con php + MVC

Mira que simplifique un poco el add del VehiculosController.php, quedándome así:

Código PHP:
Ver original
  1. public function add(){
  2.         if(Session::get("tipo") == "admin"){
  3.             Session::set('mod', isset($_POST['txtmod']) ? $_POST['txtmod'] : Session::get('mod'));
  4.             $modelos = (Session::get('mod')!="") ? $this->mod_v->obtenerXDataList(Session::get('mod')) : array();
  5.             $tiposveh= $this->mod_tv->obtenerTodos();
  6.             if (isset($_POST['btnaceptar'])) {
  7.                 if(empty($_POST['txtmat']) or empty($_POST['txtcant']) or empty($_POST['txtmod'])){
  8.                     Session::set("msg","Ingrese los datos obligatorios (*) para continuar.");
  9.                 }
  10.                 else{
  11.                     if(isset($_FILES['foto'])){
  12.                         if($this->checkImage($_FILES['foto'])!= null){
  13.                        
  14.                         }
  15.                     }
  16.                 }
  17.             }
  18.             Session::set('modelos', $modelos);
  19.             Session::set('tiposveh', $tiposveh);
  20.             $this->redirect(array('add.php'));
  21.         }
  22.         else {
  23.             Session::set("msg","Debe ser administrador para acceder.");
  24.             $this->redirect(array('Main','index.php'));
  25.         }
  26.     }
  27.    
  28.     private function checkImage($file){
  29.         if ($file["error"] > 0){
  30.             Session::set('msg', "ha ocurrido un error");
  31.             return null;
  32.         } else {
  33.             $permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
  34.             $nombre = $file['name'];
  35.             $limite_kb = 100;
  36.             if (in_array($file['type'], $permitidos) && $file['size'] <= $limite_kb * 1024){
  37.         $ruta = "View/Layout/upload/" . $nombre;
  38.         if (!file_exists($ruta)){                    
  39.                     $resultado = @move_uploaded_file($file["tmp_name"], $ruta);
  40.                     if($resultado){
  41.                         return $nombre;
  42.                     }
  43.                     else {
  44.                         Session::set('msg', $nombre . ", este archivo existe");
  45.                         return null;
  46.                     }
  47.         }
  48.             } else {
  49.                 Session::set('msg', "archivo no permitido, no cumple con la extensión o excede a los $limite_kb kb");
  50.                 return null;
  51.             }
  52.         }
  53.     }

Sólo que ahora me da este problema:

Estrella Mario Bros_800.jpg, este archivo existe -> es el mensaje que me aparece (estoy usando LinuxMint)

cuando no se dónde esta el que dice existir.

Espero sus respuestas y saludos.