À l'aide de PHP à télécharger des images vers un dossier, tout en économisant de descriptions à une base de données

L'utilisateur décide de télécharger des images multiples pour leurs petites inscription. Ce que j'ai besoin d'avoir lieu est de:

  1. Télécharger les images avec des descriptions pour chacune des images - RÉSOLUTION
  2. Enregistrer les images dans un dossier spécifié
  3. Enregistrer l'emplacement de l'image à ma base de données MySQL avec les descriptions RÉSOLU
  4. Être en mesure d'appeler les images et les descriptions dans leur liste classée dans le genre de l'environnement de la galerie

Mon schéma de la table est mis en place comme ceci (simplifié):

ad_id | member_id | category | subcategory | ... | photo_0_href | photo_0_desc ... | etc.

Quelqu'un pourrait-il me guider à travers le processus? Merci.

step3.php

<form action="upload.php" method="post" enctype="multipart/form-data">
<p>
<label for="file0">Filename: </label>
<input name="file[]" type="file" id="file0" size="20" />
</p>
<p>
<label for="file0desc">Description: </label>
<textarea rows="10" cols="30" id="file0desc" class="textarea"></textarea>
</p>
<p>
<label for="file1">Filename: </label>
<input name="file[]" type="file" id="file1" size="20" />
</p>
<p>
<label for="file1desc">Description: </label>
<textarea rows="10" cols="30" id="file1desc" class="textarea"></textarea>
</p>
<p>
<input id="submit" type="submit" name="submit" value="Continue to Step 4" />
</p>
</form>

upload.php

<?php

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 1048600)) //less than 1MB
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    header("Location: step4.php");
/*
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] /1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

*/
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

Je sais que mon upload.php n'est pas configuré pour de multiples fichiers d'image, mais c'est un début.

J'ai travaillé à sauver les descriptions de la base de données à l'aide de $_SESSION['file_n_desc']. J'ai juste besoin de comprendre comment télécharger de la reprise des images dans le dossier et ensuite enregistrer les emplacements dans la base de données.

J'ai aussi besoin d'avoir l'image renommé à une chaîne de caractères aléatoires (pour éviter que les images soient remplacées). Je sais que je peux le faire avec le rand() fonction.

  • Quelle partie vous avez des problèmes avec? De charger/Sauver, mysql, quelque chose d'autre?
  • Vous avez à peu près le processus en 4 étapes, charger - enregistrer, ajouter l'image d'infos à mysql, sélectionnez les images dont la cotation est bof. Quel code que vous avez déjà?
  • Matthews: je peux télécharger les images dans le dossier, mais je vais avoir quelques maux de tête à sauver les photos et les descriptions.
  • Hatting - s'il vous plaît partager le code que vous avez déjà pour savoir où commencer à aider, sinon, ma conjecture est que vous êtes trop nombreux processus et, éventuellement, dans le mauvais ordre, c'est l'arrêt de l'image nom/id de l'être liées à des données dans la base de données mais ce n'est qu'une supposition car je ne vois pas votre code
  • Édité ma question d'origine avec le code de l'extrémité avant et le processeur de fichiers.
  • Une autre chose: j'ai besoin d'avoir l'image renommé à une chaîne de caractères aléatoires (pour éviter que les images soient remplacées). Je sais que je peux le faire avec la fonction rand (), mais j'ai oublié de le mentionner dans mon post original.
  • où est la boucle dans laquelle vous gérez chaque fichier téléchargé ?

InformationsquelleAutor Mark Hatting | 2011-07-14