Oui si tu veux un commentaire complet (permettant tous les caractères) associé à tes photos, il faut faire un système de correspondance comme indiqué par
macgawel
Sinon comme j'avais déjà répondu à une même question en utilisant
cette classe d'upload je te redonne le code qui permet de faire ce que tu souhaites.
Pour que cela fonctionne il faut copier le code de la classe (qui se trouve en bas du premier message du lien ci-dessus) dans un fichier que tu nommeras "Upload.php" et de renseigner dans le code ci-dessous (en troisième ligne) la variable $repertoire_destination avec ton répertoire de destination.
Cela te permettra de faire rapidement des essais.
Si le nom rentré dans le formulaire ne correspond pas à un nom de fichier valide (sans accents ou caractères spéciaux) cela te renverra un message d'erreur.
Si le nom existe déjà, il sera incrémenté (mais tu pourrais choisir un suffixe aléatoire en remplaçant simplement dans le code ci-dessous la ligne : $form_1->Set_Renomme_fichier ('incr'); par $form_1->Set_Renomme_fichier ();)
La classe gère aussi d'autres erreurs : fichiers dépassant les limites autorisées, mauvaises extensions, images non valides.
<?php
require('Upload.php');
// FORMULAIRE 1
$repertoire_destination = 'Test';
// Déclaration de la classe avec envoi des paramètres
$form_1 = new Telechargement ($repertoire_destination,'formulaire_1','photo','get_formulaire_1');
//nommage du fichier suivant le post nom
$nom_fichier = isset($_POST['nom']) && trim($_POST['nom'])!='' ? $_POST['nom'] : 'sans_nom';
$form_1->Set_Nomme_fichier ($nom_fichier,'ext_fichier_telecharge','erreur_mes_info');
// option pour mémoriser le dernier nom, (session_start() est initialisé dans la classe d'upload)
$_SESSION['nom_fichier'] = isset($_SESSION['nom_fichier'])? $_SESSION['nom_fichier'] : $nom_fichier;
$_SESSION['nom_fichier'] = isset($_POST['nom'])? $_POST['nom'] : $_SESSION['nom_fichier'];
//Renommage du fichier avec incrément si un fichier de même nom est déjà existant sur le serveur
$form_1->Set_Renomme_fichier ('incr');
// Contrôle que le fichier est effectivement une image de type gif, jpg, jpeg ou png et retourne ses dimensions dans le tableau des résultats
$form_1->Set_Controle_dimImg ();
//Téléchargement sans traitement php supplémentaire -> on spécifie un rechargement de la page suite au téléchargement en indiquant un argument non nul ex 'reload' dans la fonction d'Upload.
$form_1->Upload('reload');
// Enregistrement des messages de contrôle (si besoin)
$messages_form1 = $form_1->Get_Tab_message ();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script type="text/javascript">
<!--
function Verif_attente(id_attente)
{
var id_attente = document.getElementById(id_attente);
if (typeof id_attente != 'undefined')
{
// Nettoyage de l'élément cible
var nb_noeuds = id_attente.childNodes.length;
for (var i = 0; i < nb_noeuds; i++)
{
id_attente.removeChild(id_attente.firstChild);
}
id_attente.style.fontWeight="bold";
id_attente.style.fontSize="1.5em";
var texte = 'Patientez...';
// Création du noeud texte
var noeud_texte = document.createTextNode(texte);
// Insertion du noeud texte
id_attente.appendChild(noeud_texte);
}
}
-->
</script>
<style type="text/css">
body {
font-family: Arial, Helvetica, sans-serif;
font-size:12px;
}
p, input, form {
margin:0;
padding:0;
}
</style>
</head>
<body>
<div style="width:650px;margin:auto;margin-top:50px;">
<p>Fichiers photos (png, jpg, jpeg, gif)</p>
<form enctype = "multipart/form-data" action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']).'?get_formulaire_1=1'?>" method = "post" onsubmit = "Verif_attente('message_tele')" id = "formulaire_1">
<p>
<!-- input d'identification du formulaire qui doit être passé en paramètre dans l'initialisation de la classe-->
<input type = "hidden" name = "formulaire_1" value = "1" />
<!-- Par défaut MAX_FILE_SIZE = Return_Octets(ini_get('upload_max_filesize') donc ne sert à rien en l'état. Pour limiter l'upload à une taille inférieure vous pouvez rentrez une valeur suivie de son unité, exemple $form_1->Return_Octets('500K') pour 500 kilos octets, $form_1->Return_Octets('1M') pour 1 méga octets etc. La fonction "Return_Octets" est employée pour la conversion en octets car le champ MAX_FILE_SIZE demande une valeur en octets. -->
<input type = "hidden" name = "MAX_FILE_SIZE" value = "<?php echo isset($form_1)? $form_1->Return_Octets(ini_get('upload_max_filesize')) : ''?>" />
<input name = "photo" type = "file" size = "70" /><br />
nom <input name = "nom" type = "text" size = "40" value = "<?php echo $_SESSION['nom_fichier']?>" />
<input type = "submit" value = "Envoyez" style = "margin-left:5px" />
</p>
</form>
<p>
<br />Taille maximum de fichier autorisée par le serveur = <?php echo ini_get('upload_max_filesize').'o'?>. Total maximum pour l'ensemble <?php echo ini_get('post_max_size').'o'?>.
</p>
<div id = "message_tele" style="margin-top:20px;">
<?php if (!empty($messages_form1))
foreach ($messages_form1 as $num)
{
foreach ($num as $value)
echo htmlspecialchars($value).'<br />';
}
?>
</div>
</div>
</body>
</html>