Forums Android

[RESOLU]Affichage d'une image basename($_FILES['monfichier']

[RESOLU]Affichage d'une image basename($_FILES['monfichier']

Message non lupar robwill » 21 Nov 2012, 23:52

Bonjour,
Je récupère des images d'utilisateurs via un formulaire, que je stocke dans un fichier "images". Ces images sont nommées par utilisation de la fonction basename(). Donc une image dans mon fichier "images" a pour nom :

basename($_FILES['monfichier']['name']).

Question : comment fais-je pour l'afficher ?

Je code ceci (en PHP):

echo '<img src="uploads/basename($_FILES['monfichier']['name'])" alt="Oualou ! " />' ;

...qui ne donne rien (ou plutôt, "Oualou !"...). Si je remplace basename(...) par un nom de fichier genre image.jpg, ça fonctionne.

Problème d'embrouille dans les guillemets (les ' et les ") ? Ou autre chose ?

Merci de votre aide !
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar marshallino16 » 22 Nov 2012, 09:56

Bonjour,

Par chance je viens également de créer un système d'upload pour une app qui stock une photo locale sur un serveur.

Voici le code .php me permettant d'uploader :

Code: Select All Code
<?php
// Dossier de destination
$target_path = "uploads/";

/* Resultat sous la forme "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "Fichier uploadé : ".  basename( $_FILES['uploadedfile']['name']).
    "";
   chmod ("uploads/".basename( $_FILES['uploadedfile']['name']), 0644);
} else{
    echo "Il y a eu un souci, merci de réessayer!";
   echo "filename: " .  basename( $_FILES['uploadedfile']['name']);
   echo "target_path: " .$target_path;
}
?>


Pour info, je chmod le dossier upload pour éviter tout souci.
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar robwill » 22 Nov 2012, 16:47

Salut Marshallino,

Je crois que je me suis mal exprimé, car je ne pense pas avoir un pb d'upload .
Je parviens sans prob à récupérer le fichier image envoyé par le visiteur et à le stocker dans mon répertoire local "images".
En revanche, quand je veux rappeler ce fichier image ( nommé basename($_FILES['monfichier']['name']), donc ) pour l'afficher, impossible.

Tout fonctionne bien, donc, sauf l'affichage : manifestement le nom du fichier image en basename() n'est pas reconnu dans mon script.

Ci-joint le script en 2 parties :

Partie 1 : Envoi du fichier via formulaire :

Code: Select All Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
        <title>TEST ENVOI/RECEPTION IMAGE</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
        <p>
                Formulaire d'envoi de fichier :<br />
                <input type="file" name="monfichier" /><br />
                <input type="submit" value="Envoyer le fichier" />
        </p>
</form>
</body>
</html>


Partie 2 : Reception, stockage, affichage :

Code: Select All Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
        <title>TEST RECEPTION IMAGE</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
        // Testons si le fichier n'est pas trop gros
        if ($_FILES['monfichier']['size'] <= 1000000)
        {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                        // On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));
                        echo "L'envoi a bien été effectué !" ;
   // AFFICHAGE DE L'IMAGE
                  echo '<img src="uploads/basename($_FILES['monfichier']['name'])" alt=" " />' ;
                }
        }
}
?>
</body>
</html>


Merci bcp pour ton aide !
(Si j'ai bien compris ton script, tu affiches le nom du fichier, alors que je veux afficher le fichier lui-même).
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar marshallino16 » 22 Nov 2012, 17:07

Tu veux l'afficher dans quoi exactement ?
C'est une application Android que tu devs au moins ?
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar robwill » 22 Nov 2012, 17:51

Cette fonctionnalité d'affichage doit servir pour une appli androïd et un site web(moyennant quelques adaptations).
Pour le moment je teste la version "site" (avec wampserver) car je n'ai jamais réussi à faire fonctionner les kits de dev pour appli (Eclipse + SDK, JDK, etc.).
Je souhaite juste parvenir à afficher à l'écran ce fichier image de visiteur, sans aucune gestion particulière de cet affichage (je m'en occuperai plus tard).

Je pense que c'est juste un pb de syntaxe, mais n'en suis pas sûr.
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar marshallino16 » 22 Nov 2012, 17:57

Remplaces ton
Code: Select All Code
 echo '<img src="uploads/basename($_FILES['monfichier']['name'])" alt=" " />' ;

Par

Code: Select All Code
 echo '<img src="uploads/.'basename($_FILES['monfichier']['name']).'" alt=" " />' ;
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar robwill » 22 Nov 2012, 18:18

marshallino16 Wrote:Remplaces ton
Code: Select All Code
 echo '<img src="uploads/basename($_FILES['monfichier']['name'])" alt=" " />' ;

Par

Code: Select All Code
 echo '<img src="uploads/.'basename($_FILES['monfichier']['name']).'" alt=" " />' ;


C'est fait : plantage avec mess d'erreur suivant :

( ! ) SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\wamp\www\cible_envoi.php on line 26
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar marshallino16 » 22 Nov 2012, 19:13

Cela vient de :
Echo "L'envoi[...]

Il te faut mettre un caractere d'echappement pour une apostrophe, comme cela :

echo"L\'envoi [...]
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar robwill » 22 Nov 2012, 19:45

marshallino16 Wrote:Cela vient de :
Echo "L'envoi[...]

Il te faut mettre un caractere d'echappement pour une apostrophe, comme cela :

echo"L\'envoi [...]


Eh bien non, ce texte s'affiche parfaitement lorsque je fais le test avec un nom de fichier-image de type image.jpg (présent dans mon répertoire images bien sûr)... même sans échappement d'apostrophe !
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar robwill » 22 Nov 2012, 23:08

J'ai trouvé. La bonne syntaxe est

Code: Select All Code
echo '<img src="uploads/'.basename($_FILES['monfichier']['name']).'" alt=" " />' ;


Merci à toi Marshalino pour m'avoir ainsi accordé de ton temps !
Et je garde ton code d'upload, qui me servira bientôt.

A+
robwill Gamer du Dimanche
Gamer du Dimanche
Messages: 12
Inscription: 09 Oct 2012, 16:39
Prénom: Bob
Pays: France
Sexe: Homme

Re: Affichage d'une image basename($_FILES['monfichier']['na

Message non lupar marshallino16 » 22 Nov 2012, 23:59

Avec plaisir ;)
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme


 

Retourner vers Entraide et assistance au développement