par
chrileb » 30 août 2005, 17:47
voila un script php qui permet d'uploader des images
normalement tu as juste a modifier la valeur de la $dest_dossier et mettre le chemin de ton repertoire image
<?php
//...
if(isset($_FILES['photo'])){
// params
unset($erreur); $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 100000; $dest_dossier = '';
// utilisez également des slashes sous windows :
$categ=$_REQUEST['categ'];
$titre=$_REQUEST['titre'];
$commentaire=$_REQUEST['commentaire'];
$nom_rep= strtr($titre, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_rep= preg_replace('/([^.a-z0-9]+)/i', '_', $nom_rep);
$dest_dossier = "../images/$categ/$nom_rep/";
if (!is_dir($dest_dossier))
{
mkdir ($dest_dossier);
}
// 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);
echo "la photo a bien été envoyée";
}
et le code html
<form method="POST" action="upload_photo.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<table>
<tr><td>Catégorie :</td><td><select id="categ" name="categ">
<option value="categ1">categ1</option>
<option value="categ2">categ2</option>
</select></td></tr>
<tr><td>Titre :</td><td><input type="text" name="titre" value="<?if (isset($titre)){echo $titre;}?>"/></td></tr>
<tr><td>Photo :</td><td><input type="file" name="photo" /></td></tr>
<tr><td>Commentaire :</td><td><input type="text" name="commentaire" /></td></tr>
<tr><td></td><td></td></tr>
<tr><td colspan="2"><input type="submit" name="envoi" value="Envoyer les fichiers" /></td></tr>
</table>
</form>
voila un script php qui permet d'uploader des images
normalement tu as juste a modifier la valeur de la $dest_dossier et mettre le chemin de ton repertoire image
[php]<?php
//...
if(isset($_FILES['photo'])){
// params
unset($erreur); $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 100000; $dest_dossier = '';
// utilisez également des slashes sous windows :
$categ=$_REQUEST['categ'];
$titre=$_REQUEST['titre'];
$commentaire=$_REQUEST['commentaire'];
$nom_rep= strtr($titre, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_rep= preg_replace('/([^.a-z0-9]+)/i', '_', $nom_rep);
$dest_dossier = "../images/$categ/$nom_rep/";
if (!is_dir($dest_dossier))
{
mkdir ($dest_dossier);
}
// 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);
echo "la photo a bien été envoyée";
}[/php]
et le code html
[php]<form method="POST" action="upload_photo.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<table>
<tr><td>Catégorie :</td><td><select id="categ" name="categ">
<option value="categ1">categ1</option>
<option value="categ2">categ2</option>
</select></td></tr>
<tr><td>Titre :</td><td><input type="text" name="titre" value="<?if (isset($titre)){echo $titre;}?>"/></td></tr>
<tr><td>Photo :</td><td><input type="file" name="photo" /></td></tr>
<tr><td>Commentaire :</td><td><input type="text" name="commentaire" /></td></tr>
<tr><td></td><td></td></tr>
<tr><td colspan="2"><input type="submit" name="envoi" value="Envoyer les fichiers" /></td></tr>
</table>
</form>[/php]