JQuery - Subir una imagen al servidor

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

Subir una imagen al servidor

Publicado por Marta (12 intervenciones) el 28/12/2022 22:26:32
Buenas,
Tengo un poco de duda de si el post debería de ser para este foro o para el de php.

Estoy intentando subir una imagen al servidor. Tengo un botón para subirla, pero debo clicar dos veces, pues a la primera no funciona

A continuación adjunto el código:

El código html es este:
1
2
3
4
5
6
7
8
<input id='D-A0026-1' name='fotoDespesa1' type='file' style='display:none;' )'>
<label for='D-A0026-1'>
      <div style='cursor:pointer;' onclick=\"pujarFoto('D-A0026-1')\">
             <div style='float:left;'><img src='../images/foto.png' style='width:30px;'></div>
              <div style='float:left;margin:5px 0 0 5px;'>Subir foto</div>
       </div>
 </label>

El código jquery es este: creo un formulario.
1
2
3
4
5
6
7
8
function pujarFoto(id) {
    var formulari = new FormData();
    formulari.append('id', id);
    formulari.append('fotos', $('#' + id)[0].files[0]);
    $.ajax({type: "POST", url:"../php/pujarFoto.php", processData:false, contentType:false, cache:false, data:formulari, success:function(resposta) {
         ... lo que sea
    }});
}

Y el código php
1
2
3
4
5
6
7
8
9
if (isset($_POST['id'])) {
    $nomFoto = $_FILES['fotos']['name'];
    $pos = strpos($nomFoto, ".");
    $nomFoto = substr($nomFoto, 0, $pos).substr($nomFoto, $pos);
    if (!move_uploaded_file($_FILES['fotos']['tmp_name'], "../fotos/".$nomFoto))
        echo "Error. Foto no pujada! ".$nomFoto."*";
    else
        echo "../fotos/".$nomFoto;
}

Alguien ve porqué tengo que apretar dos veces el botón? Gracias
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
sin imagen de perfil
Val: 18
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Subir una imagen al servidor

Publicado por Marta (12 intervenciones) el 29/12/2022 23:01:09
Me respondo yo mismo.
El problema es en el evento para subir la imagen, debe ser onchange enlugar de onclick
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