Salut!
Comme je ne suis pas encore rodée au php, j'ai évidemment pas réussi à faire ce que Edouard m'a suggéré.
Donc peux tu m'aider sur ce coup?
Attention je vais mettre du code!! ^^Le script de l'upload que j'ai récupéré est OK, ça peut tjrs servir pour tester ce qui cloche.
Voici le script de mon formulaire:
<html>
<body>
<FORM ID="" METHOD="POST" ENCTYPE="multipart/form-data" name="action">
<INPUT TYPE=FILE NAME="fichier_upload" value="envoi_image" size="33" />
<INPUT TYPE=SUBMIT name="add_file" value="Add a file" /><br />
<b>Browse your computer to add an image. <em>(2Mo max.)</em></b>
</FORM><br />
<?php
// UPLOAD D'IMAGES !
//***************************************
// on récupère les infos du fichier à uploader
// nom du champ
$fichier_temp = $_FILES['fichier_upload']['tmp_name'];
$fichier_nom = $_FILES['fichier_upload']['name'];
// on défini les dimensions et le type du fichier
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);
// infos de contrôle du fichier
$fichier_poids_max = 2097152;
$fichier_h_max = 1600;
$fichier_l_max = 1600;
// dossier de destination
$fichier_dossier = 'upload/';
// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);
// on renomme le fichier
$fichier_date = date("dmY-H:i:s");
$fichier_n_nom = $fichier_date.".".$fichier_ext;
// on vérifie s'il y a bien un fichier à uploader
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
// on vérifie le poids du fichier
if (filesize($fichier_temp)<$fichier_poids_max) {
// types de fichiers autorises 1=gif / 2=jpg / 3=png
if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {
// on vérifie si l'image n'est pas trop grande
if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {
if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {
// si le fichier est ok, on l'upload sur le serveur
/*
création de la miniature
*/
// dimension maximale largeur et hauteur comprise
$taille_max = 300;
// si le fichier est plus grand que $taille_max on le miniaturise
if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {
// définition des dimensions
if (($fichier_haut > $taille_max) && ($fichier_haut >> $fichier_larg)) {
$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
$mini_larg = $taille_max;
}
else {
$mini_haut = $taille_max;
$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);
}
// si le fichier est un .gif
if ($fichier_type === 1){
// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreate($mini_larg, $mini_haut);
// fond blanc pour l'image
$fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);
// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
// on rend transparent le fond blanc
imagecolortransparent($fichier_reduit, $fond_blanc);
// crée le fichier réduit définitif
imagegif($fichier_reduit, $fichier_dossier."mini/".$nom_fichier_reduit);
}
// si le fichier est un .jpg / .jpeg
if ($fichier_type===2){
// définition de la qualité
$qualite=80;
// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
// crée le fichier réduit définitif
imagejpeg($fichier_reduit, $fichier_dossier."mini/".$nom_fichier_reduit, $qualite);
}
// si le fichier est un .png
if ($fichier_type===3){
// definition de l'image dont on va faire une miniature
$fichier_source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);
// dimensions x et y à donner au fichier
$fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduit = 'mini_'.$fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
// crée le fichier réduit définitif
imagepng($fichier_reduit, $fichier_dossier."mini/".$nom_fichier_reduit);
}
// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
}
else {
$nom_fichier_reduit = $fichier_n_nom;
}
// transfert ok
echo "You well add your image.<br />";
}
// erreur
else {
echo "Uploading failed.<br />";
}
}
// erreur
else {
echo "The image is too big. ( width and height : 1600px max.)<br />";
}
}
// erreur
else {
echo "You must choose the right type of file : jpg or jpeg, gif, png. <br />";
}
}
// erreur
else {
echo "Too big file, 2Mo maximum.<br />";
}
}
// erreur
else {
echo "Choose the right type of file.<br />";
}
//*********************************************
//fin script UPLOAD D'IMAGES
if ( (isset($_POST["add_file"])) && ($_POST["add_file"]=="Add a file") ) {
/*modifier la balise form
...
*/
//affichage de l'image selon la présence de miniatures
$chemin="upload/".$fichier_n_nom;
if(is_file("upload/mini/mini_".$fichier_n_nom))
$image="upload/mini/mini_".$fichier_n_nom;
else $image="upload/".$fichier_n_nom;
$lienimg="<a href=\"$chemin\" target=\"_blank\"><img src=\"$image\" alt=\"no image\" border=0/></a>";
echo $lienimg;
//bouton submit
echo '<input type="submit" value="envoi tt!" />';
}
?>
<br/>
<FORM METHOD="POST" name="action" value="envoi_form">
<input type="text" name="title"/> Title
<input type="text" name="namea"/> Your name<br />
Content<br/>
<textarea name="content" cols="60" rows="10"></textarea><br />
</FORM><br/>
</body>
</html>
Et ici le script pour récupérer les variables et enregistrer l'article :
if(isset($_POST["title"])&&isset($_POST["namea"])&&isset($_POST["content"])) {
// ajouter article
$title=stripslashes(str_replace("|","",$_POST["title"]));
$namea=str_replace("|","",$_POST["namea"]);
$content=str_replace("|","",$_POST["content"]);
$content=str_replace("\n","<br/>",$content);
$content=stripslashes($content);
$data="{$title}|{$namea}|{$content}";
$timestamp=time();
$date=date("d.m.y");
if($fp=fopen("logs/{$timestamp}.{$date}.txt","w")) {
fwrite($fp,$data);
fclose($fp);
$f->flatFileHandle();
} else {
$d->msg("could not write data");
}
}
Comment pourrai-je rajouter l'image?
Comme ceci ? ->
echo "<a href=\"$chemin\" target=\"_blank\"><img src=\"$image\" alt=\"no image\" border=0/></a>";
Récapitulons :
- à ce stade, l'upload de l'image est OK;
- il me manque la modification du formulaire pour permettre de l'envoyer avec l'image uploadée.
J'attends avec impatience vos éclaircissements.
Merci. A bientot!
Crunchla<-