IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer un document vai l'attribut src d'une image ?


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Récupérer un document vai l'attribut src d'une image ?
    Bonjour,

    J'ai mis des documents (images et fichiers Excel) en dehors du serveur web :

    private
    -- -----
    documents_importants
    services
    www
    -----
    Tout le reste de mon site

    J'aimerais pouvoir récupérer via index.php les documents importants, j'ai ce code dans le dossier services (en dehors du www) :

    Fichier getFile.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
     
        if(isset($_SESSION['admin']) && $_SESSION['admin'] == 'administration')
            {
                if(isset($_GET['id']))
                {
                    //echo "inclusion ok 2";
                    $filter = stripslashes($_GET['id']);
                    $extension = substr($filter,-3);
                    $path =  '../private/' . $filter;
                    if($extension =='gif') header("Content-type: image/gif");
                    elseif($extension =='jpg') header("Content-type: image/jpeg");
                    elseif($extension =='png') header("Content-type: image/png");
                    echo file_get_contents($path);
                }
            }
     
    ?>
    Je require ce fichier dans index.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else if (isset($_SESSION['admin']))
    {
        require('../private/services/getFile.php');
    Je mets ce code dans le src de mon image pour tester et forcer l'envoi d'un id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="https://monsite/private/services/geFile.php?id=Crystal_Disk_Info.png" id="img_recto" /></span>
    Cela ne fonctionne pas, l'image apparaît comme ceci :

    Nom : Capture d’écran 2019-07-27 à 17.48.28.png
Affichages : 114
Taille : 14,1 Ko

    Auriez-vous une idée svp ?

    Merci d'avance et bon samedi.

    bee

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    si verso fonctionne, c'est peut-être simplement lié à une différence de caractère dans le nom du fichier cible (majuscule, minuscule, extension...) Compare bien ce que tu as dans le dossier et le nom demandé.
    Sinon, ton code peut être amélioré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_SESSION['admin'], $_GET['id']) && $_SESSION['admin'] === 'administration') {
        if (ctype_alnum(str_replace(['.', '_'], '', $_GET['id']))) {
            $ext  = pathinfo($_GET['id'], PATHINFO_EXTENSION);
            // ici DIR_ROOT doit être initialisé à partir du dossier racine du site
            $path = DIR_ROOT.'private'.DIRECTORY_SEPARATOR.$_GET['id'];
            if (in_array($ext, ['gif', 'jpg', 'png'], true) && is_file($path)) {
                header("Content-type: image/{$ext}");
                echo file_get_contents($path);        
            }
        }
    }

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut,

    Merci pour ta réponse rapide et sorry pour le temps de ma réponse, j'ai essayé pleins de bout de code avant de répondre.

    Verso ne fonctionne pas, j'applique actuellement le code sur recto, verso est juste une image qui ne fait pas d'action.

    J'ai tout tenté, mais impossible de télécharger une document (jpg, png, xlsx, pdf...) avec mon code...

    L'idée est d'avoir un service qui permet de télécharger des documents dans un répertoire hors du www.

    Aurais-tu un exemple de code stp ?

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/03/2019, 23h22
  2. attribut src d'une image en php
    Par Markos22 dans le forum Langage
    Réponses: 7
    Dernier message: 27/10/2016, 14h30
  3. Changer la valeur de l'attribut src d'une video
    Par chtrousselle dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/04/2012, 19h12
  4. Changer l'attribut src d'une image
    Par bagu dans le forum jQuery
    Réponses: 12
    Dernier message: 16/06/2011, 12h52
  5. [Prototype] Changement de l'attribut src d'une image
    Par gescolino dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 18/07/2010, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo