Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Fallo puntual de subida de fichero

Estas en el tema de Fallo puntual de subida de fichero en el foro de PHP en Foros del Web. Hola a todos He realizado esta acción otras veces y me ha funcionado correctamente, pero en este caso, es como si el fichero no lo ...
  #1 (permalink)  
Antiguo 19/11/2015, 07:37
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 12 años, 10 meses
Puntos: 3
Fallo puntual de subida de fichero

Hola a todos
He realizado esta acción otras veces y me ha funcionado correctamente, pero en este caso, es como si el fichero no lo cargara (no se subiera) y me está frustrando
Adjunto todo el código (que es el formulario y la acción de cuando envío con la opción de actualizar imagen= SI)

Código PHP:
Ver original
  1. <H1>Modificación de Link</H1>
  2.  
  3. <?PHP
  4. error_reporting(E_ERROR | E_PARSE);
  5.  
  6.    $update = $_REQUEST['modi_id'];
  7.    $borrar = $_REQUEST['borrar'];
  8.  
  9.    $modificar = $_REQUEST['modificar'];
  10.    if (isset($modificar)){
  11.       // Insertar la pregunta en la Base de Datos
  12.    $conexion = mysqli_connect("localhost", $_SESSION['u'], $_SESSION['p'], "MIBD");
  13.       if (!$conexion) {
  14.           echo('No pudo conectarse: ');
  15.       }
  16.       $instruccion = "SELECT * FROM enlaces WHERE id= $update";
  17.       $consulta = mysqli_query ($conexion,$instruccion)
  18.          or die ("Fallo en la consulta select");
  19.       $antiguo = mysqli_fetch_array ($consulta);
  20.       ?>
  21.  
  22.       <?php
  23.       if($borrar == '1'){
  24.         unlink($antiguo['imagen']);
  25.  
  26.         $uploaddir = '/images/links/';      
  27.         $local =  $_FILES['file']['tmp_name'];
  28.         $imagen = $_FILES['file']['name'];
  29.         if(is_uploaded_file($_FILES['file']['tmp_name']))
  30.           {print("ha cargado");}
  31.  
  32.         $id_ftp = ftp_connect("MIHOST",21);
  33.         ftp_login ($id_ftp, "MIUSER", "MIPASS");
  34.         ftp_pasv ($id_ftp, false);
  35.         ftp_chdir ($id_ftp, "/public_html/images/links/"); //carpeta donde vamos a dejar el archivo
  36.         if (ftp_put($id_ftp,$imagen,$local,FTP_BINARY)){
  37.           echo "Imagen subida correctamente al servidor <br>";
  38.         }else{echo "No se ha subido la imagen al servidor <br>";}
  39.         ftp_quit($id_ftp);  
  40.  
  41.         $actualizado= $uploaddir . $imagen;
  42.    
  43.         $instruccionupdate= " UPDATE  enlaces SET
  44.          imagen =  '$actualizado' WHERE id =$update";
  45.         $consulta = mysqli_query ($conexion,$instruccionupdate) or die ("Fallo en la consulta update <br>");
  46.       }else{
  47.       echo utf8_decode($antiguo['titulo']);
  48.       ?>
  49.       <br>
  50.       <h2>Nuevos valores</h2>
  51.         <FORM ACTION='modilink.php' METHOD='post'>
  52.         <!-- Título-->
  53.         <P><LABEL>Título: *</LABEL>
  54.           <?php
  55.             echo '<INPUT TYPE="TEXT" NAME="titulo" SIZE="50" MAXLENGTH="50" VALUE="'. utf8_decode($antiguo['titulo']). '">';
  56.           ?>
  57.         </P>
  58.  
  59.         <!-- Sección del enlace-->
  60.         <P><LABEL>Seccion:</LABEL>
  61.         <SELECT NAME="seccion">
  62.           <OPTION VALUE="1" SELECTED> Criaderos PLC
  63.           <OPTION VALUE="2"> Adiestramiento y educación
  64.           <OPTION VALUE="3"> Protectoras
  65.           <OPTION VALUE="4"> Enlaces de interés
  66.         </SELECT></P>
  67.  
  68.         <!-- Texto_es-->
  69.         <P><LABEL>Texto_es: </LABEL>
  70.           <?php
  71.             echo '<TEXTAREA COLS="45" ROWS="5" NAME="texto_es">'. utf8_decode($antiguo['texto_es']).'</TEXTAREA>';
  72.           ?>
  73.         </P>
  74.  
  75.         <!-- Texto_en-->
  76.         <P><LABEL>Texto_en: </LABEL>
  77.           <?php
  78.             echo '<TEXTAREA COLS="45" ROWS="5" NAME="texto_en">'. utf8_decode($antiguo['texto_en']).'</TEXTAREA>';
  79.           ?>
  80.         </P>
  81.  
  82.         <!-- Link-->
  83.         <P><LABEL>Link: </LABEL>
  84.           <?php
  85.             echo '<INPUT TYPE="TEXT" NAME="link" SIZE="50" MAXLENGTH="50" VALUE="'. utf8_decode($antiguo['link']). '">';
  86.           ?>
  87.         </p>
  88.  
  89.         <?php
  90.           echo '<INPUT TYPE="hidden" NAME="id" VALUE="'. $update. '">';
  91.         ?>
  92.  
  93.         <INPUT TYPE='SUBMIT' NAME='modificar' VALUE='Actualizar'>
  94.         </form>
  95.       <?php
  96.     }
  97.    }
  98.    else{
  99.    // Conectar con el servidor de base de datos
  100.       $conexion = mysqli_connect ("localhost", $_SESSION['u'], $_SESSION['p'], "lamanada_web");
  101.       if($conexion->connect_errno){
  102.           printf("No se puede conectar con el servidor: %s", $conexion->connect_errno );
  103.       }
  104.  
  105.    // Enviar consulta
  106.       $instruccion = "select * from enlaces";
  107.       $consulta = mysqli_query ($conexion,$instruccion)
  108.          or die ("Fallo en la consulta");
  109.  
  110.    // Mostrar resultados de la consulta
  111.       $nfilas = $consulta->num_rows;
  112.       if ($nfilas > 0)
  113.       {
  114.          print ("<FORM ACTION='modificar_link.php' METHOD='post'>\n");
  115.  
  116.          print ("<TABLE>\n");
  117.          print ("<TR>\n");
  118.          print ("<TH>Sección</TH>\n");
  119.          print ("<TH>título</TH>\n");
  120.          print ("<TH>Link</TH>\n");
  121.          print ("<TH>Texto_es</TH>\n");
  122.          print ("<TH>Texto_en</TH>\n");
  123.          print ("<TH>Imagen</TH>\n");
  124.          print ("<TH>Borrar</TH>\n");
  125.          print ("</TR>\n");
  126.  
  127.          for ($i=0; $i<$nfilas; $i++)
  128.          {
  129.             $resultado = mysqli_fetch_array ($consulta);
  130.             print ("<TR>\n");
  131.             print ("<TD>" . utf8_decode($resultado['seccion']) . "</TD>\n");
  132.             print ("<TD>" . utf8_decode($resultado['titulo']) . "</TD>\n");
  133.             print ("<TD>" . utf8_decode($resultado['link']) . "</TD>\n");
  134.             print ("<TD>" . utf8_decode($resultado['texto_es']) . "</TD>\n");
  135.             print ("<TD>" . utf8_decode($resultado['texto_en']) . "</TD>\n");
  136.             print ("<TD>" . utf8_decode($resultado['imagen']) . "</TD>\n");
  137.  
  138.             print ("<TD><INPUT TYPE='radio' NAME='modi_id' VALUE='" .
  139.                $resultado['id'] . "'></TD>\n");
  140.  
  141.             print ("</TR>\n");
  142.          }
  143.          print ("</TABLE>\n");
  144.          print ("<BR>\n");
  145.          print("<LABEL> ¿Actualizar imagen?</LABEL>
  146.          <SELECT NAME='borrar'>
  147.          <OPTION VALUE='0' SELECTED> No
  148.          <OPTION VALUE='1'> Si
  149.          </SELECT><br>
  150.          ");
  151.          print("<LABEL>Imagen: </LABEL>
  152.          <INPUT TYPE='file' NAME='file'><br><br>
  153.          ");
  154.          print ("<INPUT TYPE='SUBMIT' NAME='modificar' VALUE='Modificar enlace marcado'>\n");
  155.          print ("</FORM>\n");
  156.          print("<P>
  157.                NOTA:<br>
  158.                La sección corresponde a:
  159.                <ol>
  160.                  <li> Criaderos.
  161.                  <li> Adiestramiento y educación .
  162.                  <li> Protectoras.
  163.                  <li> Enlaces de interés.
  164.                </ol>
  165.              </P>");
  166.       }
  167.       else
  168.          print ("No hay enlaces disponibles");
  169.      }
  170.    // Cerrar conexión
  171.       mysqli_close ($conexion);
  172.  
  173. ?>

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 19/11/2015, 07:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo puntual de subida de fichero

¿Al menos podrías compartir lo que obtienes en pantalla o tenemos que ejecutar el código mentalmente para saber?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/11/2015, 08:23
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Fallo puntual de subida de fichero

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Al menos podrías compartir lo que obtienes en pantalla o tenemos que ejecutar el código mentalmente para saber?
Perdón, pero me muestra esto:

No se ha subido la imagen al servidor


No me muestra ERROR, sino que simplemente no se sube la imagen, además en el formulario de cuando creo un registro en la bd y subo la imagen, se sube (en la esquina del navegador se ve el % de subida), sin embargo, en esta página para actualizar la imagen y datos, no se sube nada.
  #4 (permalink)  
Antiguo 19/11/2015, 08:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo puntual de subida de fichero

Pues revisando mejor el formulario veo que te hace falta el "enctype" adecuado para poder subir archivos.

Consulta el siguiente manual: http://php.net/manual/es/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/11/2015, 12:39
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Fallo puntual de subida de fichero

Sinceramente, no entiendo muy bien sobre esa instrucción, por mas que leo
  #6 (permalink)  
Antiguo 19/11/2015, 12:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo puntual de subida de fichero

Pues tu imprimes esto:
Código PHP:
Ver original
  1. print ("<FORM ACTION='modificar_link.php' METHOD='post'>\n");

Y te hace falta el "enctype" como dice el manual:
Código HTML:
Ver original
  1. <form enctype="multipart/form-data" action="__URL__" method="POST">

Sin el "enctype" el formulario jamás subirá los archivos y por ende $_FILES no funcionará como esperas.

Lee bien el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 19/11/2015, 12:48
Avatar de agusax  
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Fallo puntual de subida de fichero

Perdón por el doble post, acabo de encontrar el fallo y a lo que te referías.
El problema estaba aquí:
Código PHP:
Ver original
  1. print ("<FORM ACTION='modificar_link.php' METHOD='post' ENCTYPE='multipart/form-data'>\n");
Para indicar como se envían los datos del formulario.
Muchas gracias.
PD: Marco el post como solucionado

Edito: Mientras publicaba esto, he visto que has publicado jeje, gracias por todo

Etiquetas: fallo, fichero, html, mysql, select, subida
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:14.