Upload d'image avec affichage instantané de l'image.
Bonjour à tous,
est-ce possible d'uploader une image et de l'afficher dans la même page une fois que l'image a été uploadée.
Merci d'avance
Thierry
tu upload comment ton image ? tu le fais via un formulaire html non ? avec un bouton submit. donc le formulaire est envoyé soit :
- à la même page que celle de l'affichage du formulaire, et donc tu affiche ton image fraichement uploadée au rechargement de la page, je ne saisis pas où est le problème.
- à une autre page de traitement, dans ce cas tu peux faire une redirection après le traîtement vers la page du formulaire.
ma réponse semble trop simple, j'ai peut-être mal compris la question, essaie d'être plus clair.
Merci LEPHPFACILE et tous ses membres :)
Bonjour Michel,
tout d'abord, merci pour ta réponse à mon message.
Donc, je veux simplement afficher l'image que j'ai uploadée dans la même page.
Voici mon code :
<html>
<head>
<title>Upload</title>
</head>
<body>
<table width="100%" border="0">
<tr>
<td>
<form name="upload" method="post" action="" enctype="multipart/form-data">
<input type="file" name="fichier_upload" id="fichier_upload"><br>
<input type="submit" name="Submit" value="Uploader">
</form>
</td>
</tr>
<tr>
<td>
<?php
if(!empty($_FILES['fichier_upload']['name']))
{
// on récupère les infos du fichier à uploader
$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 = 500000;
$fichier_h_max = 2448;
$fichier_l_max = 3264;
// dossier de destination
$fichier_dossier = '../Documents/';
// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);
// on renomme le fichier
$fichier_date = date("ymdhis");
$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))
{
// si le fichier est ok, on l'upload sur le serveur
if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom))
{
echo "Le fichier a été uploadé avec succès<br />";
echo '<a href="'.$fichier_dossier.$fichier_n_nom.'"><img src="'.fichier_dossier.$fichier_n_nom.'"></a><br />';
}
else
echo "Le fichier n'a pas pu être uploadé<br />";
}
else
echo "Le fichier est trop grand<br />";
}
else
echo "Le fichier n'a pas le bon format<br />";
}
else
echo "Le fichier est trop lourd<br />";
}
else
echo "Pas de fichier à uploader<br />";
}
?>
</td>
</tr>
</table>
</body>
</html>
J'obtiens le message qui me dit que mon image a été uploadée avec succès mais l'image ne s'affiche pas. J'ai mon image avec une croix rouge.
En plus, quand j'essaie de rappeler la page, il me met :
Warning: Page has Expired The page you requested was created using information you submitted in a form. This page is no longer available. As a security precaution, Internet Explorer does not automatically resubmit your information for you.
To resubmit your information and view this Web page, click the Refresh button.
Que puis-je faire pour éviter ce problème.
Merci d'avance
Thierry
salut,
est ce que echo fichier_dossier.$fichier_n_nom; retourne quelque chose de coéhérent avec ce que tu attend ?
$fichier_dossier = '../Documents/';
je suppose que ce script est dans un répertoire sous la racine (au minimum 1) ?
tu peut avoir le type mime du fichier avec le champ type du table dans $_FILES.
quelque info
la
@+
Il en faut peu pour être heureux !!!!!
Bonsoir Moogli,
merci également pour ta réponse.
Le répertoire dans lequel je place l'image est un répertoire faisant partie du répertoire racine.
En fait, quand je clique sur l'image dont j'en ai également fait un lien, il m'affiche bien l'image.
J'ai également ajouté le code suivant :
<input type="image" border="0" name="imageField" src="<? print fichier_dossier.$fichier_n_nom; ?>">
mais, malheureusement, l'image ne s'affiche toujours pas.
As-tu déjà eu l'occasion de développer une page qui "upload" un fichier et l'affiche dans la même source ?
Merci d'avance pour ton aide
Thierry
As-tu déjà eu l'occasion de développer une page qui "upload" un fichier et l'affiche dans la même source ?
A tu lu le lien en bas que ma réponse ?
Si oui tu pourra constater que c'est le cas :)
est ce que tu a le bon chemin du fichier dans le src ?
est ce que l'on peut voir se script "en ligne" ?
(je n'est pas de quoi tester ton code sous main ;) )
ps utilise <?php plutot que <? afin de na pas être confronter à un problème sur une version future de php !
@+
@+
Il en faut peu pour être heureux !!!!!
# echo '<a href="'.$fichier_dossier.$fichier_n_nom.'"><img src="'.fichier_dossier.$fichier_n_nom.'"></a><br />';
il manque un $
Merci LEPHPFACILE et tous ses membres :)
Bonsoir Moogli,
merci de nouveau pour ton aide.
J'ai bien le lien qui s'affiche dans la barre des tâches et j'ai également le bon chemin d'accès dans src.
Par contre, je me demande si c'est possible de faire cela en php. Ne faudrait-il pas plutôt utiliser AJAX ?
Par contre, je n'ai pas le lien dont tu me parles dans ton message.
Merci d'avance
Thierry
Bonsoir Michel,
merci énormément pour ton aide.
C'était une bétise mais le principal, c'est que ça marche.
Encore merci à toi et à Moogli pour votre aide.
Thierry
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: