Càrrega d’imatges múltiples amb subtítol – PHP – SitePoint Forums

Estic intentant penjar diverses imatges amb subtítol, subtítol on l’usuari pot editar i actualitzar el subtítol.
No tinc cap problema per a la càrrega d’imatges múltiples, però no he pogut esbrinar com afegir subtítols per a cada imatge de càrrega amb l’opció d’edició/actualització.

Pàgina d’índex d’imatges per carregar el formulari

Codi de càrrega d’imatges múltiples

$sernamename = "localhost";
    $username    = "root";
    $passoword   = "";
    $databasename= "my_db";

    // Create database connection
    $con = mysqli_connect($sernamename, $username,$passoword,$databasename);

    // Check connection
    if ($con->connect_error) {
        die("Connection failed". $con->connect_error);
    }

  // Upload multiple image in Database using PHP MYSQL

  if (!empty($_FILES['multipleFile']['name'])) {

    $multiplefile = $_FILES['multipleFile']['name'];

    foreach ($multiplefile as $name => $value) {
      
    $allowImg = array('png','jpeg','jpg',''); 

    $fileExnt = explode('.', $multiplefile[$name]);

    if (in_array($fileExnt[1], $allowImg)) {

        if ($_FILES['multipleFile']['size'][$name] > 0 && $_FILES['multipleFile']['error'][$name]== 0) {
          
      $fileTmp = $_FILES['multipleFile']['tmp_name'][$name];
          
      $newFile =  rand(). '.'. $fileExnt[1];

      $target_dir="uploads/".$newFile; 

      if (move_uploaded_file($fileTmp, $target_dir)) {
          $query  = "INSERT INTO table_images (images) VALUES('$newFile')";
          mysqli_query($con, $query);
      }
        }
    }
      }
  } 

Obteniu dades per mostrar la imatge enviada de la base de dades


  $query = "SELECT * FROM table_images";

  $result = mysqli_query($con, $query);
  
  if (mysqli_num_rows($result) > 0) {

      while ($row = mysqli_fetch_assoc($result)) {
    $images = $row['images'];
   
      

      ?>
        
;

No Image found"; }

La imatge es pot carregar i mostrar fàcilment, però com puc afegir subtítols a les imatges que l’usuari la pugui editar/actualitzar.

Com puc obtenir aquesta opció de subtítol amb l’opció de pujada d’imatges múltiples on l’usuari pot editar el subtítol i actualitzar-lo


El nom del camp ha de ser una matriu, com el nom del camp del camp type=’file’, amb l’índex de la matriu com l’identificador (índex primari d’increment automàtic) corresponent a la fila de la taula de la base de dades on es troba la imatge. Quan s’envien les dades, podeu utilitzar un bucle foreach() per obtenir tant l’índex de matriu (id) com el valor enviat.

El vostre codi de gestió de fitxers de càrrega HA de detectar si la mida total de les dades del formulari ha superat la configuració post_max_size (tant les matrius $_FILES com $_POST estaran buides), i després s’ha de provar per assegurar-vos que cada fitxer individual s’ha penjat sense cap error, el [‘error’] L’element serà un zero, abans d’utilitzar-ne qualsevol per a la informació del fitxer penjat.

Els ordinadors no funcionen molt bé a l’atzar. El vostre codi existent ha de detectar i gestionar els duplicats.

Una millor manera d’anomenar les coses de manera única és inserir la fila de dades, obtenir l’identificador de darrera inserció d’increment automàtic d’aquesta consulta i utilitzar l’identificador com a part del nom. Com que es garanteix que l’índex primari d’increment automàtic és únic, no hi ha possibilitat de duplicats.

També hauríeu d’utilitzar una consulta preparada sempre que proporcioneu valors externs, desconeguts i dinàmics a una consulta quan s’executa, de manera que cap caràcter especial sql d’un valor no trenqui la sintaxi de la consulta sql, que és com és la injecció sql. complert. Si esteu evitant fer-ho a causa del difícil que és amb l’extensió mysqli, canvieu a l’extensió PDO molt més senzilla.

Edita: un altre problema amb el codi de càrrega és que heu de mostrar un missatge d’error útil per a cada fitxer penjat que no s’ha pogut carregar o validar, de manera que l’usuari pugui corregir el problema i tornar a carregar els fitxers fallits.

Com ofereix això a l’usuari la capacitat d’edició d’actualitzar el subtítol…???

Vaig intentar inserir un formulari i provar d’actualitzar amb el codi següent, però no té cap efecte d’actualització

if (mysqli_num_rows($result) > 0) {

      while ($row = mysqli_fetch_assoc($result)) {
    $images = $row['images'];
   $caption= $row['caption'];
   $id = $row['id'];
      

      ?>
        
;


la consulta d'actualització no es veu afectada a causa d'ajax...???

Valors codificats en dur a la consulta d'actualització en lloc dels valors de publicació.

Només estava comprovant la introducció del valor del codi dur de manera aleatòria...

Atès que l'etiqueta

Si també utilitzeu ajax per enviar les dades del formulari d'edició/actualització de subtítols, quina depuració heu fet per esbrinar si s'han enviat dades, quins valors s'han enviat i què ha fet el codi del servidor?

I, en realitat, això només em va fer veure el problema més probable. Quan utilitzeu ajax per enviar un formulari, el botó d'enviament no és un camp de formulari correcte i no s'establirà automàticament a les dades del formulari. Aquesta és la raó per la qual contínuament diem a la gent que sempre detecti si s'ha enviat un formulari de mètode de publicació.

A més, posar el codi de processament de formularis al mig del formulari "pot" funcionarà (el codi actual trencarà la sortida dels formularis de subtítols a causa de la reutilització de noms de variables), però el codi de processament de formularis del mètode de publicació sempre hauria d'estar per sobre de l'inici de el document html i, en el cas d'utilitzar ajax, haureu d'enviar qualsevol error d'usuari/validació o missatge d'èxit al codi ajax i finalitzar l'execució del codi php.

Ho resolc inserint el nom de la imatge a les files de subtítols de la base de dades, però no estic segur que funcionarà amb l'identificador de la pàgina, desenvolupo el projecte...

afegir una pàgina nova...
camp de títol, camp de contingut camp d'altres i, finalment, camp de càrrega múltiple

taula de pàgines
inserir-hi parent_page (camp-1 camp-2,camp-3) valors (camp-1 camp-2, camp-3)
lastinsert->id es genera

taula-galeria
inserir-hi imatge-galeria (imatge múltiple) valors (imatge múltiple) on parent_id = lastinsert->id

Actualitzaré el resultat un cop arribi a aquesta secció.

S'han resolt diverses imatges amb subtítol sense enllaç a cap altre identificador de taules...

a la base de dades només estic emmagatzemant el nom de la imatge sense la seva extensió... p.

Aquest tema es va tancar automàticament 91 dies després de la darrera resposta. Ja no es permeten noves respostes.

Leave a Comment

Your email address will not be published. Required fields are marked *