PHP - $_FILES no recoge post de formulario

 
Vista:
sin imagen de perfil
Val: 336
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

$_FILES no recoge post de formulario

Publicado por Alex (172 intervenciones) el 20/09/2020 19:57:17
Buenos dias,

vereis me pasa algo muy raro con un formulario. Tengo el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
 
session_start();
include("conexion.php");
 
$id = $_POST['id'];
 
$accion = $_POST['accion'];
 
 
switch($accion){
 
case "modificarDiscapacidad":
 
                $idDiscapacidad = $_POST['idDiscapacidad'];
 
 
                $SQL = "SELECT * FROM discapacidad WHERE id_discapacidad=".$idDiscapacidad;
                $resultado = mysqli_query($GLOBALS['conn'],$SQL);
                $filas = mysqli_fetch_array($resultado);
 
                echo "<div>
                        <form method='post' action='validarDatosModificarEmpleo.php'>
                        <input type='hidden' value='".$id."' name='id'>
                        <input type='hidden' value='".$idDiscapacidad."' name='idDiscapacidad'>
                                    <label>Tipo:</label><input type='text' value='".$filas['tipo']."' name='tipoDiscapacidad'>
                                    <label>Grado:</label><input type='text' value='".$filas['grado']."' name='gradoDiscapacidad'>
                                    <label>Documentación:</label><input type='file' name='documentacionDiscapacidad' multiple><br>
                                            <button type='submit' value='modificarDiscapacidad' name='accion'>Modificar</button>
                        </form>
                    </div>";
 
        break;
 
}
 
 
cerrarBD();
 
?>

En esta pagina envio el formulario que esta dentro de una funcion switch


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
 
session_start();
include("conexion.php");
 
 
$id = $_POST['id'];
 
 
$accion = $_POST['accion'];
 
switch ($accion){
 
case "modificarDiscapacidad":
 
        $idDiscapacidad = $_POST['idDiscapacidad'];
        $tipoDiscapacidad = $_POST['tipoDiscapacidad'];
        $gradoDiscapacidad = $_POST['gradoDiscapacidad'];
        $documentacionDiscapacidad = $_FILES['documentacionDiscapacidad'];
 
        //subimos la documentacion al servidor si la hubiera
        $archivo = (isset ($documentacionDiscapacidad)) ? $documentacionDiscapacidad: null;
        $archivo_destino = null;
 
        if ($archivo) {
                $extension = pathinfo($archivo['name'], PATHINFO_EXTENSION);
                $extension = strtolower($extension);
 
                if ($extension == "pdf")
                    {
 
                    $archivo_destino = "archivos/documentos/discapacidad/".basename($archivo['name']);
 
                    $archivo_ok = move_uploaded_file($archivo['tmp_name'], $archivo_destino);
 
                }else {
 
                    echo "¡No se ha subido documentación de discapacidad!<br/>";
 
                }
        }
 
        $SQL = "UPDATE discapacidad SET tipo=?, grado=?, ruta_documentacion=? WHERE id_discapacidad=? AND codigo_persona_discapacidad=?";
        $result = mysqli_prepare($GLOBALS['conn'], $SQL);
 
        $ok = mysqli_stmt_bind_param($result, "sssii", $tipoDiscapacidad, $gradoDiscapacidad, $archivo_destino, $idDiscapacidad, $id);
        $ok = mysqli_stmt_execute($result);
 
        if($ok==false){
 
            echo "Error al modificar";
 
 
        }else{
 
 
            echo "Modificados los datos de 'Discapacidad'</br>
            <a href ='empleo.php?id_personal=".base64_encode($id)."' text-decoration='none'>Volver</a>";
 
 
        }
 
    break;
 
}
 
 
cerrarBD();
 
?>

En esta recojo y valido los datos de la primera pagina.

Todos me los modifica salvo el dato de input file, que muestra el siguiente mensaje:

Notice: Undefined index: documentacionDiscapacidad in "ruta segunda pagina" on line 46

Necesito ayuda urgente puesto que no se que pasa, por que no me recoge ese campo del formulario?? He estado horas incluso dias y no lo veo.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

$_FILES no recoge post de formulario

Publicado por joel (1269 intervenciones) el 21/09/2020 08:05:23
Hola Alex, para poder enviar un archivo, en el formulario hay que poner: enctype="multipart/form-data"... algo así:

1
<form method='post' action='validarDatosModificarEmpleo.php' enctype='multipart/form-data'>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 336
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

$_FILES no recoge post de formulario

Publicado por Alejandro (172 intervenciones) el 17/10/2020 10:34:39
Gracias joel. Madre mia que tonto soy....
Perdona por tardar en contestar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar