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 :

Ouverture de fichiers locaux


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut Ouverture de fichiers locaux
    Bonjour,
    Alors je vous expose mon problème.
    J'aimerais créer une interface web en local en PHP via mon serveur Wamp pour lister mes fichiers qui j'ai en local (dans mon lecteur C:/) et les ouvrir depuis cette page.
    Dans un fichier .html j'arrive sans problème à les ouvrir via cette ligne :
    <a href="file:///J:/The.Event.S01E01.HDTV.XviD-LOL.avi">fichier</a>

    Mais dans un fichier .php, avec la même ligne, rien n'a faire il ne veut pas. (je suis sous firefox)

    Auriez vous une solution?


    Par avance, merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Où est-ce que tu bloques exactement ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Le lien ne marche pas, il ne lance pas ma vidéo sous VLC via le fichier PHP.

    Petite précision, le fichier html à une URL du type : file:///C:/Users/fogof/Desktop/test.html
    Le fichier PHP est hébergé de cette façon : http://localhost/serie/test.php

    Cela peu être une piste. J'ai cherché 3-4 jours et j'arrive pas à trouver une solution...

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Je ne comprends pas le pb.

    Si, comme tu le dis, ce qui suit fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="file:///J:/The.Event.S01E01.HDTV.XviD-LOL.avi">fichier</a>
    Alors ceci fonctionne aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="file:///J:/The.Event.S01E01.HDTV.XviD-LOL.avi">fichier</a>' ;

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Je pense que la clé de la solution se trouve dans l'url.
    L'un est hébergé en local via un serveur (php), l'autre est lancé directement en cliquant sur le fichier (html).

    Et non, ta solution ne marche malheureusement pas.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Ok je vois ;-)

    Pour récapituler, via un lien <a> sur une page :
    - Tu peux accéder à un fichier local quand la page HTML est ouverte directement avec le navigateur (fichier > ouvrir un fichier)
    - Tu ne peux pas accéder à un fichier local quand la page HTML/PHP est ouverte via le serveur web

    Exposé ainsi ce me semble normal pour des raisons de sécurité.

    J'avais déjà réussi à faire cela il y a un certain temps, mais je ne sais plus comment.
    Là pour palier au problème je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="read.php?file=J:/The.Event.S01E01.HDTV.XviD-LOL.avi">The Event 1x01</a>
    read.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
        // Divers en-têtes
        // Taille du fichier, nom, etc.
        readfile($_GET['file']) ;
    ?>

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    PS : attention à ce qu'il n'y ait surtout pas de caractères blancs avant/après <?php ?> dans read.php.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Ahh presque! Je suis jamais allé aussi loin dans la résolution du problème!!

    Heu le soucis c'est qu'il me l'ouvre comme si je faisait clic droit/ouvrir avec notepad++ (version text en faite) alors que c'est un .avi (que j'aimerais lancer avec VLC).

    En tout cas le résumé de mon problème que tu expose plus haut est correct. C'est exactement ce que j'essayais de te faire comprendre

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Yep j'aurais du détailler un peu plus pour les en-têtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    header('Content-Type: video/x-msvideo') ; // Pour lancer le lecteur vidéo
    header('Content-Length: ' . filesize($_GET['file'])) ;
    header('Content-Disposition: attachment; filename=' . $_GET['file']) ;
     
    readfile($_GET['file']) ;
    Je n'ai pas de fichier pour test, mais ça devrait être bon.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    De mieux en mieux

    Alors cette fois ci il me l'ouvre bien et j'arrive à le lire, le hic c'est qu'il me le télécharge alors qu'il est déjà en local :/
    Il me l'ouvre pas à partir du répertoire ou il se trouve.
    En faite il faudrait que j'arrive à le lancer depuis le répertoire source pour que les sous titres se lisent en même temps. En plus cela ne me créera pas de fichier doublon.

    Il faut peut être activer une option de wamp serveur? J'ai essayé de trouver mais je n'ai pas trouvé non plus de ce côté là.

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    C'est normal qu'il y ait un téléchargement vu que le fichier passe par le serveur web.
    Pour éviter cela tu peux peut-être lancer le mediaplayer en ligne de commandes, ex. pour read.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
        exec('c:/program files/videolan/vlc/vlc.exe ' . $_GET['file']) ;
    ?>
    Pense à autoriser Apache à "interagir avec le bureau" dans les paramètrages du service.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Je n'arrive pas à faire ta solution.
    J'ai pourtant bien autorisé Apache à "interagir avec le bureau".

    Mais cela ne marche pas :/

    (j'ai vérifié le safe mode, il est bien en off)

    EDIT : pourtant quand je lance exec("ping www.php.net", $resultat); (par exemple), ensuite je print_r($resultat), il me sort des informations correctes.

    Pour info mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_GET['file'] = "J:/Community.S02E05.HDTV.XviD-LOL.avi";
    $_GET['vlc'] = "C:/Program Files (x86)/VideoLAN/VLC/vlc.exe";
     
    exec($_GET['vlc']." ".$_GET['file']);
    J'ai également essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_GET['file'] = "J:\\Community.S02E05.HDTV.XviD-LOL.avi";
    $_GET['vlc'] = "C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe";
     
    exec($_GET['vlc']." ".$_GET['file']);

  13. #13
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Essaie avec des " :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('"c:/program files/videolan/vlc/vlc.exe" ' . $_GET['file']) ;
    Pour moi ça passe.

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    La, ma page mouline dans le vide ><
    Il faut savoir que mon VLC est dans le dossier suivant :
    C:/Program Files (x86)/VideoLAN/VLC/vlc.exe

    (j'ai Windows seven 64Bit)

  15. #15
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('"C:/Program Files (x86)/VideoLAN/VLC/vlc.exe" ' . $_GET['file']) ;
    Si ça ne passe pas essaie :


  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    La page mouline toujours dans le vide, même avec exec('winver');
    J'ai l'impression que windows bloc mes exec

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    J'ai désactiver mon pare feu windaube et j'ai toujours mon fichier qui mouline dans le vide :/

    dsl pour le double post, j'ai fait un erreur de manip -_-

  18. #18
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Hum t'es sûr que le Apache que tu utilises est bien autorisé à "interagir avec le bureau" ? As-tu redémarré le service ?
    Sinon il y a peut-être un pb de droits d'utilisateur, mais là je ne pourrais pas t'aider davantage.

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Alors (je suis avec Wamp serveur) :
    - je fait ALT+CTRL+SUPP
    - j'ouvre le gestionnaire de tâche
    - je vais dans service et je clique sur le bouton service
    - je vais sur le service wampapache >> propriété >> Connexion >> je coche "Autoriser le service à interagir avec le bureau".

    Je redémarre le PC (soyons fou ^^), et cela ne fonctionne toujours pas.

    Je craque :O

  20. #20
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Je ne vois pas ce qui pourrait bloquer. Peut-être une config particulière à wampapache.

Discussions similaires

  1. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 10h44
  2. Ouverture de fichier en api
    Par Michaël dans le forum Windows
    Réponses: 9
    Dernier message: 10/12/2003, 17h47
  3. Ouverture de fichier
    Par Ricou.13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/10/2003, 09h59
  4. Réponses: 2
    Dernier message: 26/02/2003, 16h18
  5. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 10h42

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