Upload fichier
Posté : 16 nov. 2005, 16:30
Encore moi, oui je sais j'ai plein de problème aujourd'hui...
J'ai une page qui contient un formulaire et un upload de fichier.
Séparément le formulaire fonctionne très bien, et l'upload également (j'ai suivi le tutorial de votre site)
Mais voilà une fois réuni sur la même page, l'upload ne fonctionne plus, mais en revanche les données du formulaire s'enregistre parfaitement.
Comme j'ai 2 balise form et deux fichier en ACTION, je pense que le bug vient de là.
PS : Dans votre tutorial, il est prévu uniquement prévu d'uploader le fichier dans un répertoire définit, ou dans l'enregistrer dans une bdd également?
Si oui, c'est un bien un champ de type BLOB qu'il faut créer nan?
etc etc (champ de mon formulaire, tout fonctionne)
on arrive à l'upload
J'ai une page qui contient un formulaire et un upload de fichier.
Séparément le formulaire fonctionne très bien, et l'upload également (j'ai suivi le tutorial de votre site)
Mais voilà une fois réuni sur la même page, l'upload ne fonctionne plus, mais en revanche les données du formulaire s'enregistre parfaitement.
Comme j'ai 2 balise form et deux fichier en ACTION, je pense que le bug vient de là.
PS : Dans votre tutorial, il est prévu uniquement prévu d'uploader le fichier dans un répertoire définit, ou dans l'enregistrer dans une bdd également?
Si oui, c'est un bien un champ de type BLOB qu'il faut créer nan?
Code : Tout sélectionner
<form name="frm" method="post" action="ajout_anomalies.php" enctype="multipart/form-data">on arrive à l'upload
<?php
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'txt');
$taille_max = 500000;
$dest_dossier = 'img/';
// 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-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
?>
<?php
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
?> /php*/
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="upload_file.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p>
<label for="photo">Photo :</label>
<input type="file" name="photo" />
</p>
<!-- bouton d'envoi -->
<p>
<input type="submit" name="envoi" value="Envoyer les fichiers" />
</p>
</legend>
</fieldset>
</form>
et un peu plus bas, le premier formulaire se ferme en globant le formulaire d'upload :/
<input type="submit" value="Envoyer" name="submit">
</form>