begin process at 2012 05 30 18:24:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

pb de téléchargement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb de téléchargement

vendredi 11 mai 2007 à 14:35:25 | pb de téléchargement

aidam

Bonjour,

Voila ma situation j'ai fait un site intranet qui permet de télécharger des documents. le téléchargement ce passe bien losque les document sont sur le meme serveur que le site cependant dans mon cas la plus par des documents sont sur un deuxième serveur.

j'ai essayer de revenir jusqu'a la racine puis de mettre l'adresse du serveur suivit du chemin vers le fichier mais ca n'a pas fonctionner.

Quelqu'un a une idée sur comment le faire? et pourquoi ca na pas fonctionner?
dimanche 13 mai 2007 à 14:51:49 | Re : pb de téléchargement

neigedhiver

Salut,

Tu n'obtiendras pas d'aide si tu n'en dis pas plus :
- qu'est-ce qui ne fonctionne pas, précisément ?
- que ce passe-t-il exactement (ou que ne se passe-t-il pas) ?
- y a-t-il un message d'erreur ? Si oui, lequel ?
- a quoi ressemble ton code ? A quoi ressemblent les url ?

Es-tu sûr qu'il s'agisse de php et pas de code HTML ?
lundi 14 mai 2007 à 08:18:22 | Re : pb de téléchargement

aidam

salut,

 

Voila ce qu'il ce passe dans le cas ou je vais chercher sur le deuxième serveur, il crée un fichier vide du nom indiqué, le contenu est donc oublier, j'en déduis qu'il n'est pas ouvert. Lorsque le document est télécharger à partir du meme serveur que l'endroit ou est le site le fichier est complet avec son contenu.

Je n'ai pas de message d'erreur.

Voici le code des fonction réaliser en php mise dans une page nommée essai.php

<?php

//Pour télécharger les fichiers
function typeMime($nomFichier)
/* retourne le type MIME à partir de l'extension de fichier contenu dans $nomFichier
Exemple : $nomFichier = "fichier.pdf" => type renvoyé : "application/pdf" */
{
    // on détecte d'abord le navigateur, ça nous servira plus tard
    if(preg_match("@Opera(/| )([0-9].[0-9]{1,2})@", $_SERVER['HTTP_USER_AGENT'], $resultats))
        $navigateur="Opera";
    else if(preg_match("@MSIE ([0-9].[0-9]{1,2})@", $_SERVER['HTTP_USER_AGENT'], $resultats))
        $navigateur="Internet Explorer";
    else $navigateur="Mozilla";

    // on récupère la liste des extensions de fichiers et leurs types Mime associés
    $mime=parse_ini_file("mime.ini");
    $extension=substr($nomFichier, strrpos($nomFichier, ".")+1);
   
    /* on affecte le type Mime si on a trouvé l'extension sinon le type par défaut (un flux d'octets).
    Attention : Internet Explorer et Opera ne supporte pas le type MIME standard */
    if(array_key_exists($extension, $mime)) $type=$mime[$extension];
    else $type=($navigateur!="Mozilla") ? 'application/octetstream' : 'application/octet-stream';

    return $type;
}
/**
 * Télécharge le contenu d'un fichier sur le client de l'internaute, avec le nom spécifié.
 *
 * @param string $contenuFichier Le contenu du fichier à télécharger
 * (obtenu avec file_get_contents() par exemple).
 * @param string $nomFichier Nom du fichier qui sera proposé par défaut à l'internaute.
 */
function telechargerFichier($contenuFichier, $nomFichier)
{
    // on détermine le type MIME du fichier
   $typeFichier=typeMime($nomFichier);
           
    // envoi des en-têtes nécessaires au navigateur
    header('Content-Type: '.$typeFichier);
    header('Content-Disposition: attachment; filename="'.$nomFichier.'"');
            
    // il ne reste plus qu'à envoyer le contenu du fichier
    echo $contenuFichier;
}
$nom = $_GET['doc'];
telechargerFichier(file_get_contents($nom), $nom);

?>


Contenu du fichier mime.ini

[microsoft]
doc = application/msword
rtf = application/msword
xls = application/excel
pps = application/vnd.ms-powerpoint
ppt = application/vnd.ms-powerpoint

[adobe]
pdf = application/pdf
ai = application/postscript
eps = application/postscript
psd = image/psd

 

Le passage de paramètre ce fait de la facon suivante

<a href="essai.php?doc=serveur\g---drhu\demande de stage.xls">test</a>

lundi 14 mai 2007 à 08:42:51 | Re : pb de téléchargement

neigedhiver

Salut,

Pour mieux diagnostiquer l'erreur, il faudrait peut-être que tu fasses un peu plus de contrôles à ce niveau là...

telechargerFichier(file_get_contents($nom), $nom);

Si file_get_contents rencontre une erreur, quelle qu'elle soit, la fonction retourne FALSE. Là, tu ne peux pas le savoir ni gérer l'erreur.
Questions basiques, mais nécessaires :
- le fichier est-il bien au bon endroit ?
- est-ce que ton serveur est configuré pour ouvrir les fichiers distants avec les fonctions fopen, readfile, file_get_contents, etc ?
- as-tu vérifié que l'URL est correcte et pointe bien vers le fichier demandé ?
lundi 14 mai 2007 à 15:57:02 | Re : pb de téléchargement

aidam

merci pour ton aide

en ce qui concerne le fichier je suis sur qu'il est présent à cette endroit.

pour l'URL c'est le chemin qui va jusqu'au fichier à partir du nom du serveur, j'ai meme essayer avec l'adrees IP du serveur mais ca ne marche pas mieux. Faut il d'abors retourner à la racine du premier serveur?

par contre je ne sai pas comment  savoir si le serveur est configuré pour ouvrir les fichiers distants.
jeudi 24 mai 2007 à 09:18:20 | Re : pb de téléchargement

aidam

Salut

J'ai résolu mon probleme, il n'y avais pas de serveur web à l'endroit ou était situé les documents donc il fallais que je passe par une étape intermédiaire tel que :
         - télécharge sur le serveur  contenant le site dans un fichier temporaire
         - ensuite le télécharger vers le poste client.

merci pour votre aide.



Cette discussion est classée dans : pb, site, serveur, téléchargement, documents


Répondre à ce message

Sujets en rapport avec ce message

installation d'un site sur un serveur linux [ par aphikit ] j'ai réalisé un annuaire en php avec la base de donnée Mysql, pour un intranet et j'aurais aimé le mettre à disposition de tous.Mais je débute en info Premier pas et Pb avec phpmyadmin [ par gege1024 ] voila, je desire passer d'un site statique à un site dynamique,comme je ne compte pas faire de mon ordi un serveur, j'ai ouvert un compte php3 sur fre HELP pb pour mettre sur un serveur [ par nikos283 ] Salut j'ai un petit pb!Mon site sous easy php fonctionne tres bien.Des que je le met sur un serveur apache linux il m'affiche le message d'erreur suiv J'ai un prob avec le serveur [ par kajoul ] Salut, j'ai un big prob.J'ai commence a concevoir un site avec l'ASP, apres j'ai decouvert que le serveur ou va le site etre heberge est un serveur AP Utilisateur sur le site ou pas ? [ par coolboy78 ] Bonjour,jaimerai savoir si il ya utilisateur dans mes page PHP, et ken il n'ya ai plus.Le pb ce n'est pas ken il passe d'une page a l'autre je met un pb php/apache [ par glipper ] Bonjour, Je viens de monter un serveur apache (V1.3) et d'installer php4.3.2 (depuis php.net) sur mon pc qui tourne sous Win2000Pro. Mon serveur marc pb de php register [ par milouze ] Salut,J'utilise un script php qui marche très bien sur mon serveur.Par contre sur un autre serveur il ne marche absolument pas. Le webmaster du site m PB DE SESSION SUREMENT... [ par alexthehobbit ] J'ai créé un site (les pages sont .php) avec une identification obligatoire pour pouvoir y accéder. Les identifiants et les mots de passe sont stockés PB DE SESSION SUREMENT... [ par alexthehobbit ] J'ai créé un site (les pages sont .php) avec une identification obligatoire pour pouvoir y accéder. Les identifiants et les mots de passe sont stockés PB DE SESSION SUREMENT... [ par alexthehobbit ] J'ai créé un site (les pages sont .php) avec une identification obligatoire pour pouvoir y accéder. Les identifiants et les mots de passe sont stockés


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales