par
yola26 » 16 sept. 2005, 16:02
oulala
j'ai mis dans mon formulaire un champ upload et en dessous une liste déroulante permettant d'afficher le contenu du dossier ou sont uploader les images. Mais lorsque je clique sur envoi. Cela ne fonctionne pas ! Il faudrait qu'il envoie l'image dans le dossier à l'aide d'un javascript pour mettre à jour la liste déroulante sans recharger la page simplement en réactulisant la liste déroulante. je vous transmets le code :
Code : Tout sélectionner
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<form method="POST" action="xxx.php" enctype="multipart/form-data">
<table border="0" width="445" id="table1">
<tr>
<td colspan="2"><font size="4" face="Verdana">Fiche Technique de
l'utilisateur</font></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">Utilisateur :</font></b></td>
<td width="310"><select size="1" name="utilisateur">
<?
for ($cpt = 0; $cpt < count($tab); $cpt++)
{
echo '<option value="'.$tab[$cpt]['prenom'].' '.$tab[$cpt]['nom'].'">'.$tab[$cpt]['prenom'].' '.$tab[$cpt]['nom'].'</option>
';
}
?>
</select></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">titre :</font></b></td>
<td width="310"><input type="text" name="titre" size="20"></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">description :</font></b></td>
<td width="310"><textarea rows="6" name="description" cols="35"></textarea></td>
</tr>
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'c:/Apps/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<tr>
<td width="115"><b><font size="2" face="Verdana">Envoi photo :</font></b></td>
<td width="306" colspan="2">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<input type="file" name="photo" /><input type="submit" name="envoi" value="Envoi" /></td>
</tr>
<tr>
<td width="115"><font face="Verdana" size="2"><b>Photo du chorègien
:</b></font></td>
<td width="105"><select size="1" name="inscription_avatar" onChange ="if (VersionNavigateur(3.0,4.0)) imgDepart1.src='avatar/avatar_base/' + form.inscription_avatar.options[form.inscription_avatar.selectedIndex].value + '.gif';">
<?
$dossier = opendir ("avatar/avatar_base/");
$i = 0;
while ($fichier = readdir ($dossier)) {
if ($fichier != "." && $fichier != ".." && $fichier != "index.php" && $fichier != "avatar_base_temp") {
$fichier = substr($fichier, 0, strlen($fichier)-4);
if ($fichier == 'photo') {
echo '<option value="'.$fichier.'" selected>'.$fichier.'</option>';
$fichier1 = $fichier;
}
else {
echo '<option value="'.$fichier.'">'.$fichier.'</option>';
}
$i = $i + 1;
}
}
closedir ($dossier);
?>
Dois-je mettre 2 <form> l'un pour l'upload du fichier et l'un pour l'envoi du formulaire dans la base de donnée ? enfin comment puis-je faire
oulala
j'ai mis dans mon formulaire un champ upload et en dessous une liste déroulante permettant d'afficher le contenu du dossier ou sont uploader les images. Mais lorsque je clique sur envoi. Cela ne fonctionne pas ! Il faudrait qu'il envoie l'image dans le dossier à l'aide d'un javascript pour mettre à jour la liste déroulante sans recharger la page simplement en réactulisant la liste déroulante. je vous transmets le code :
[code]
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?>
<form method="POST" action="xxx.php" enctype="multipart/form-data">
<table border="0" width="445" id="table1">
<tr>
<td colspan="2"><font size="4" face="Verdana">Fiche Technique de
l'utilisateur</font></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">Utilisateur :</font></b></td>
<td width="310"><select size="1" name="utilisateur">
<?
for ($cpt = 0; $cpt < count($tab); $cpt++)
{
echo '<option value="'.$tab[$cpt]['prenom'].' '.$tab[$cpt]['nom'].'">'.$tab[$cpt]['prenom'].' '.$tab[$cpt]['nom'].'</option>
';
}
?>
</select></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">titre :</font></b></td>
<td width="310"><input type="text" name="titre" size="20"></td>
</tr>
<tr>
<td width="125"><b><font face="Verdana" size="2">description :</font></b></td>
<td width="310"><textarea rows="6" name="description" cols="35"></textarea></td>
</tr>
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'c:/Apps/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<tr>
<td width="115"><b><font size="2" face="Verdana">Envoi photo :</font></b></td>
<td width="306" colspan="2">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<input type="file" name="photo" /><input type="submit" name="envoi" value="Envoi" /></td>
</tr>
<tr>
<td width="115"><font face="Verdana" size="2"><b>Photo du chorègien
:</b></font></td>
<td width="105"><select size="1" name="inscription_avatar" onChange ="if (VersionNavigateur(3.0,4.0)) imgDepart1.src='avatar/avatar_base/' + form.inscription_avatar.options[form.inscription_avatar.selectedIndex].value + '.gif';">
<?
$dossier = opendir ("avatar/avatar_base/");
$i = 0;
while ($fichier = readdir ($dossier)) {
if ($fichier != "." && $fichier != ".." && $fichier != "index.php" && $fichier != "avatar_base_temp") {
$fichier = substr($fichier, 0, strlen($fichier)-4);
if ($fichier == 'photo') {
echo '<option value="'.$fichier.'" selected>'.$fichier.'</option>';
$fichier1 = $fichier;
}
else {
echo '<option value="'.$fichier.'">'.$fichier.'</option>';
}
$i = $i + 1;
}
}
closedir ($dossier);
?>
[/code]
Dois-je mettre 2 <form> l'un pour l'upload du fichier et l'un pour l'envoi du formulaire dans la base de donnée ? enfin comment puis-je faire