Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1150 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PB de download de fichier sur serveur distant.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PB de download de fichier sur serveur distant.

n°1623677
lenono75
Posté le 15-10-2007 à 10:56:16  profilanswer
 

Bonjour,
 
mon titre n'est peu être pas assez explicite.
Le voici donc détaillé.
Je me trouve face à une situation nouvelle...
 
Je dois faire un script qui me permette d'effectuer un download sur un fichier qui se trouve sur un serveur distant.
Un simple lien marcherait bien sauf que j'ai des actions à effectuer avant : logger, stats et vérif de droit d'accès.
Alors mon lien simple ne peut plus être utilisé.
 
Je vous donne ce que j'ai fait :

Code :
  1. <?php
  2. //authentification de l'utilisateur
  3. // et verif des droits à visualiser le fichier
  4. // logger
  5. //stats
  6. // Si tout OK, DL du fichier :
  7. header("Pragma: public" );
  8. header("Cache-Control: cache, must-revalidate" );
  9. header("Expires: 0" );
  10. header("Content-Type: application/force-download" );
  11. header("Content-Type: application/octet-stream" );
  12. header("Content-Type: application/download" );
  13. header("Content-Transfer-Encoding: binary" );
  14. header("content-type: application/pdf" );
  15. header("Content-Disposition: attachment; filename='http://serveur/distant/fichier-distant.pdf'" );
  16. // Sinon, message de refus d'accès
  17. ?>


Je précise également que qu'il me faut un DL et non un affichage à l'écran !
 
 
Il est clair que normalement, en php sur serveur local, on a un readfile...
Mais là ???
 
Quelle solution verriez vous ?
Je précise que les serveur d'aplication web et de stockage sont dans 2 DMZ distinctes et n'ont aucun lien ensemble si ce n'est ... Ce lien !
 
Merci de votre coup de main et de votre attention.
 
Arnaud
 
NB : l'étourderie me fait peut être passer à coté de quelque chose de très simple !!! eh eh   :D

mood
Publicité
Posté le 15-10-2007 à 10:56:16  profilanswer
 

n°1623729
micfont999
Simplement Moi
Posté le 15-10-2007 à 11:37:06  profilanswer
 

bonjour
 
http://fr2.php.net/manual/fr/function.ftp-connect.php
http://fr2.php.net/manual/fr/function.ftp-login.php
http://fr2.php.net/manual/fr/function.ftp-fput.php
 
:)
 
tu te connect comme avec un client ftp,  
tu te logue
tu charge ton fichier en verifiant que ça soit bien chargé, et hop .. :)
 
tiens un collègue qui avait le même pb que toi ;)
http://www.commentcamarche.net/for [...] ur-distant
 
bonne chance :)
 
 

n°1623730
micfont999
Simplement Moi
Posté le 15-10-2007 à 11:37:51  profilanswer
 

ah oups non je me suis ptete planté, c'est un download ou un upload que tu veux faire?
 
dans le premier cas alors
http://fr.php.net/manual/fr/function.ftp-fget.php
http://fr.php.net/manual/fr/function.ftp-get.php
 
:)  
 [:magnasuprema]


Message édité par micfont999 le 15-10-2007 à 11:40:37
n°1623841
lenono75
Posté le 15-10-2007 à 13:48:26  profilanswer
 

Bonjour micfont999,
 
Je vois ce que tu veux dire, ce serait si simple !
Mais pas possible, ni en ftp ni autre chose.
 
Je n'ai que le lien, qui est en fait une URL recomposée par mon appli, et qui envoie des paramètres de récup pour avoir mon fichier.
 
C'est un vrai lien, avec plein de paramètres (genre URL de la sncf.com), et qui pointe sur un serveur d'appli, et qui me retourne le fichier.
 
L'idée, c'est donc que l'utilisateur puisse choisir ou enregistrer, ou ouvrir.
 
Merci quand même.
 
Arnaud

n°1623847
micfont999
Simplement Moi
Posté le 15-10-2007 à 13:53:54  profilanswer
 

ah ouai, merde alors ...
euh bah la je dois avouer que je vois pas trop .. je comprend pas trop ton soucis, tu pointe vers un lien sur un serveur distant, et lorsque l'on clique sur ce lien tu veux pouvoir decider de si l'on ouvre le fichier, ou l'enregistrer, après avoir fait tes stats, et autres manip que tu veux, c'est ça ?

n°1623857
lenono75
Posté le 15-10-2007 à 13:58:43  profilanswer
 

Oui, absolument.
 
Dans les scripts qui permettent d'obtenir un fichier en local, y'a pas de problèmes.
Ma config est OK.
Mais là, c'est guère possible, et j'ai beau reprendre ça dans tous les sens !

n°1623864
micfont999
Simplement Moi
Posté le 15-10-2007 à 14:06:07  profilanswer
 

ah oui la je suis désolé mais je ne te serais pas d'une grande aide ... :s désolé .. va falloir t'en remettre aux autres :)

n°1623969
FlyPhp
Posté le 15-10-2007 à 15:15:20  profilanswer
 

Normalement tu dois rajouter aussi la ligne

Code :
  1. header("Content-length: ".filesize($File));


pour que cela fonctionne.
 
Malheureusement filesize() ne fonctionne que pour les fichiers en local. Donc à moins que tu es un acces ftp, et que tu download le fichier sur ton serveur (que tu gardes en cache pour éviter de le refaire à chaque fois) pour ensuite l'envoyer au client, je ne pense pas que cela soit possible...
 
Cependant, si quelqu'un connait une autre solution, je suis preneur :p

n°1623980
micfont999
Simplement Moi
Posté le 15-10-2007 à 15:22:46  profilanswer
 

bah c'est un peu étrange de chopper des fichiers comme ça je trouve, autant aspirer le site lol ...
mais bon on ne sais pas trop ce qu'il veux en faire ..

n°1623987
FlyPhp
Posté le 15-10-2007 à 15:26:44  profilanswer
 

Ouais bizarre... Enfin il a surement une excellente raison.
Au pire, si il a pas d'acces ftp, il code un mini webservice en php qui récupere le fichier pdf tous les jours genre à 2h00 du matin sur son serveur. Comme ça il a la nouvelle version sur son serveur tous les jours, et comme ça il a le fichier en local.

mood
Publicité
Posté le 15-10-2007 à 15:26:44  profilanswer
 

n°1623992
micfont999
Simplement Moi
Posté le 15-10-2007 à 15:28:15  profilanswer
 

ça serais plus pratique en effet d'uploader le fichier sur le serveur et de faire son analyse une fois le fichier en local

n°1624381
lenono75
Posté le 16-10-2007 à 09:31:27  profilanswer
 

Oui, je vois ce que vous voulez dire...
 
Mais on parle d'intranet, et le serveur de fichiers pdf doit héberger environ quelques centaines de milliers de fichiers !! eh eh !!
 
Je gère en local, sur mon serveur d'appli le portail, sur un serveur à coté, y'a mon oracle, et en déporté, y'a les fichiers.
Donc voilà le hic.
 
Mais bon, en fait je m'oriente sur une solution de popup, qui appelle une première fenêtre de script de verif des droits d'accès, puis un document.location.href sur l'url complète du fichier.
 
En tout cas, merci à vous de vous être intéressé à mon p'tit souci !
 
Arnaud

n°1624387
micfont999
Simplement Moi
Posté le 16-10-2007 à 09:41:30  profilanswer
 

tiens nous au courant de ta solution finale si tu à un peu de temps ^^
 
- enfin ton explication ne pose pas de soucis quand même, ça prendra juste un peu de temps, mais ça peux fonctionner :)  :jap:


Message édité par micfont999 le 16-10-2007 à 09:42:20
n°1624461
lenono75
Posté le 16-10-2007 à 10:45:26  profilanswer
 

Je n'y manquerai pas ;-)
 
Bonne journée
 
Arnaud


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PB de download de fichier sur serveur distant.

 

Sujets relatifs
Serveur HTTP et Stack smashing detected[Résolu][SH-Sed] Supprimer une partie d'un fichier
Mauvaise manipe = comment supprimer un fichier ?Supression caractères dans nom fichier
Extraire une partie d'un fichier texte[résolu] Moteur de recherche interne avec fichier pdf
Extraire de données de fichier texte vers excel[VB6] Decompresser un fichier ZIP
[RESOLU]creation fichier txt[Symfony] ini_set() désactivé sur serveur web
Plus de sujets relatifs à : PB de download de fichier sur serveur distant.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR