begin process at 2012 05 28 21:05:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Divers

 > 

Forcer le DL d'un fichier avec espaces ....


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

Forcer le DL d'un fichier avec espaces ....

mercredi 1 mars 2006 à 17:54:55 | Forcer le DL d'un fichier avec espaces ....

arginine

Bonjour,

Voici le code que j'utilise pour forcer le téléchargement d'un fichier. Tout se passe tres bien SAUF pour
les fichiers dont le nom comporte un expace. Je ne souhaite pas contourner le probleme en renomnant mes fichiers.

Fichier download.php:

<?
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");
readfile($_GET['chemin']);
?>


$_GET['file'] = fichier.ext (ex: toto.jpg)
$_GET['chemin'] = chemin complet (ex: [ Lien ]


HTML (ex ou le fichier a télécharger est une image):
<a href="download.php?chemin=http://site/dossier/&file=DSCN1030.jpg">Telecharger</a>


J'ai deux questions:

1 - est ce que la symtaxe de mon fichier download.php est correct ?
2 - Et enfin pourquoi ca marcche pas (j'ai bien une fenetre de proposition de tlélchargement,
 je peux bien télécharger un fichier mais celui ci fait 2ko et est "illisible") QUAND il y a des eapaces dans le
nom du fichier ???


PS: J'ai cru parvenir a resoudre mon probleme avec ce lien, mais ... non:
[ Lien ]

Par avance, merci a tous


Francis

mercredi 1 mars 2006 à 17:59:19 | Re : Forcer le DL d'un fichier avec espaces ....

Anthomicro

Salut,

si tu tentes de remplacer les espaces par %20 ça fonctionne ? dans le cas contraire t'es bon pour les renommer...

a +


    mercredi 1 mars 2006 à 18:23:24 | Re : Forcer le DL d'un fichier avec espaces ....

    Evangun

    Bonjour,
    pour les chemins c'est toujours un calvaire, parfois il faut utiliser urlencode( ), parfois rawurlencode( ), et encore d'autres fois il faut utiliser les moyens du bord...
    J'aimerais bien comprendre une fois pour toutes, d'ailleurs...
    tiens-nous au courant de tes essais
    à+
    mercredi 1 mars 2006 à 18:24:16 | Re : Forcer le DL d'un fichier avec espaces ....

    Evangun

    ha et au fait : un chemin peut marcher sous un navigateur et pas un autre...
    jeudi 2 mars 2006 à 17:49:20 | Re : Forcer le DL d'un fichier avec espaces ....

    thomvaill

    Membre Club
    La magie de la non-compatibilité et de la non-standardisation xD

     Thomvaill
    IRC : Thomas (irc.heliosnet.org:6667 #programmation)

    jeudi 10 septembre 2009 à 18:46:58 | Re : Forcer le DL d'un fichier avec espaces ....

    siwil

    Salut les amis!!

    j'ai un petit soucis,je n'arrive pas
    a download les fichiers ayant un nom avec espace
    comme par exemple: "page accueil.doc"
    j'ai utilise les fonctions comme:
    "urlencode" ou encore "rawurlencode"
    mais sans succes
    je les utilise comme ca:

    upload.php

    <?php

    $dir='C:\doctechnique';

    if(@is_dir($dir)){// On vérifit que le dossier existe

    $dh = opendir($dir);// On ouvre le repertoire

    while(($file = readdir($dh)) !== false){// Boucle pour parcourir le repertoire

    echo 'Fichier :<a href="downloadtechnique.php?section=willy&file=' .urlencode($file) . '"> '.$file.'</a><br />';
    //echo '<a href="download-doc.php?section=willy&file=' . urlencode($file) . '">Fichier : '.$file.'</a><br />';

    }
    closedir($dh);// On ferme le repertoire

    unset($nomFich,$dir,$dh);// On supprime les variables qui servent à rien

    }else{
    ?>
    <script language="Javascript">
    alert ("Le dossier contenant les fiches de forage n'existe pas sur le serveur !!!");
    </script>
    <?php


    download.php

    <?php
    if (isset($_GET['file'])) {
    $file = preg_replace('/[^0-9a-z\.\_\-]/i','',urldecode($_GET['file']));
    //if (isset($_GET['file'])) {
    //$file = preg_replace('/[^0-9a-z\.\_\-]/i','',urlencode($_GET['file']));

    $dir='c:\\docforage\ ';
    $fullpath = $dir.$file;

    if (is_file($fullpath)) {
    header("Content-disposition: attachment; filename=".$file);
    header("Content-length: ".filesize($fullpath));
    header('Content-Type: application/octet-stream');
    header('Content-Transfer-Encoding: binary');
    readfile($fullpath);
    }
    else {
    //echo $fullpath .' n est pas un fichier';
    ?>
    <script language="Javascript">
    alert ("Telechargement Impossible !!!");
    </script>
    <?php
    require("liste_forage.php");
    }
    }
    ?>

    SVP les gars si kelk1 a un moyen pour contourner ce pb,je ne veux pas renommer mes
    fichiers.
    Merci pour une quick reponse



    Cette discussion est classée dans : fichier, php, get, forcer, download


    Répondre à ce message

    Sujets en rapport avec ce message

    ftp_get php [ par CC24 ] bonjour à tous !est-ce que l'un d'entre vous pourrait m'indiquer la syntaxe à utiliser pour télécharger un fichier situé dans un sous-répertoire du ré forcer download [ par le_foy ] salut En fait j'ai le code pour forcer l'explorateur a ouvrir une fenetre pour telecharger un fichier mais je voudrai sauter cette etapes et passer di forcer le téléchargement et espaces dans le fichier [ par arginine ] Bonjour,J'utilise le bout de code suivant pour "forcer le télécharmenet d'un fichier": Fichier dowload.php header("Content-type: application/force-dow Forcer un download [ par zwdja5 ] Bonjour, Voilà, j'ai trouvé plusieurs tutoriaux à ce sujet là forçant un téléchargement. Ceux ci concernaient principalement des extensions telles qu Forcer le téléchargement [ par djimson ] Bonjour, De l'aide pour ce script: En fait, je veux forcer le téléchargement des fichiers envoyer par FTP dans le répertoire COURS. Alors, j'arrive à (PHP) download.php avec renomage de fichier . [ par alleztulle19 ] Bonjours alors voila j'aurais besoin d'une page php , download.php en fesant un lien style download.php?url=EXEMPLE le fichier EXEMPLE se situant da fonction permettant de charger plusieur fichier xml [ par clement1412 ] Voila j'ai effectuer un script en php me permettant de charger un fichier xml suivant un formulaire. En fait j'ai réaliser ce script pour me permettre


    Nos sponsors


    Sondage...

    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,950 sec (4)

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