Upload Files with Php and jquery

0

the topic is the following I am trying to upload a file with jquery and php the code is as follows:

html

<div class="form-group">
                                        <label for="archivo" class="control-label col-xs-5">Comprobante:</label>
                                        <div class="col-xs-5">
                                            <input placeholder="Subir Comprobante en PDF" name="archivo" id="archivo" type="file" class="file">
                                        </div>
                                    </div>

                                    <div class="form-group">
                                        <label for="Observacion" class="control-label col-xs-5">Observacion :</label>
                                        <div class="col-xs-5">

                                            <textarea name="Observacion" id="Observacion"  class="form-control" rows="4" cols="50"></textarea>
                                        </div>
                                    </div>

my jquery code:

function registrarInc(){

    var datosform=$("#formIncidencia").serialize();
    $.ajax({
        url:'../Controllers/Incidencia.php',
        type:'POST',
        data:datosform+"&registrarInc=registrarInc",
        contentType: "application/x-www-form-urlencoded;charset=utf-8"
    }).done(function(resp){

        if(resp==='exito'){
            $('#exitoInc').show(200).delay(2500).hide(200);
            $('#formIncidencia')[0].reset();
        }
        else{
            alert(resp);
        }
    });
}

my php on the controller side

if ($boton==='registrarInc') {

    $nombre = $_FILES['archivo']['name'];
    $tipo = $_FILES['archivo']['type'];
    $tamanio = $_FILES['archivo']['size'];
    $ruta = $_FILES['archivo']['tmp_name'];
    $destino = "archivos/" . $nombre;
$inst = new Incidencia();
    if ($nombre != "") {

        if (copy($ruta, $destino)) {
            $empleado=$_POST['idEmp'];
        $diasolicitado=$_POST['diasolicitado'];
        $tipodejustificacion=$_POST['tipodejustificacion'];
        $Observacion=$_POST['Observacion'];
            $Autorizo="";
            if($inst->registrarInc($empleado,$diasolicitado,$tipodejustificacion,$Observacion,$Autorizo,$nombre,$tamanio,$tipo)){
            echo 'exito';
        }
        } else{
            echo "No se registraron los datos";
        }
    }
}

and my php on model side:

function registrarInc($empleado,$diasolicitado,$tipodejustificacion,$Observacion,$Autorizo,$nombre,$tamanio,$tipo)
        {

        $sql="INSERT INTO 'incidencias'('empleado', 'diasolicitado', 'tipodejustificacion', 'Observacion',Autorizo, 'nombre_archivo', 'tamanio', 'tipo') values($empleado,$diasolicitado,$tipodejustificacion,$Observacion,$Autorizo,$nombre,$tamanio,$tipo)";
            $this->conexion->conexion->set_charset('utf8');
            if($this->conexion->conexion->query($sql)){
                return true;
            }
            else{
                return false;
            }
            $this->conexion->cerrar();
        }

el error que me arroja es que mis variables
$nombre = $_FILES['archivo']['name'];
    $tipo = $_FILES['archivo']['type'];
    $tamanio = $_FILES['archivo']['size'];
    $ruta = $_FILES['archivo']['tmp_name'];
    $destino = "archivos/" . $nombre;

they have no defined value on the controller side of my php file.

I would appreciate if someone could help me.

    
asked by Apdul Apdul 02.02.2018 в 02:01
source

0 answers