Se connecter avec
S'enregistrer | Connectez-vous

Telecharger un fichier avec un lien PHP

Dernière réponse : dans Programmation

Bonjour, je cherche depuis quelque temps comment telecharger un fichier ZIP ou EXE de mon site via une page php

Exemple: http://www.monsite.com/download.php?id=chemin+nomdufich...
au lieu de http://www.monsite.com/download/fichier.exe

Quelque chose du genre, le lien apres doit etre crypter et ressembler a un lien comme ceci:

http://www.monsite.com/download.php?9fr4FeJKA6hAa1684

Meme si le fichier php fonctionne deja (sans avoir crypter le lien) poster le code ici... merci

Autres pages sur : telecharger fichier lien php

Lassé par la pub ? Créez un compte

Si j'ai bien compris le problème la solution devrait être:
  1. <?php
  2. // Decrypter $_SERVER['QUERY_STRING'] pour obtenir $NOM_DU_FICHIER
  3. $NOM_COMPLET=$_SERVER['DOCUMENT_ROOT'].$LE_CHEMIN_DU_FICHIER.$NOM_DU_FICHIER;
  4. header("Content-disposition: attachment; filename=$NOM_DU_FICHIER");
  5. header("Content-type: application/octet-stream");
  6. readfile ($NOM_COMPLET);
  7. ?>
Expert Programmation

Citation :
Impossible de faire du reverse-md5. Par contre, on peut maintenir une table saVariableCodée --> saVariablePasCodée.

C'était bien mon idée aussi : même juste garder la variable non codée, et la codée à la volée en cas de besoin... Il est aussi possible de modifier le nom du fichier pour le transformer en un code aléatoire associé à une partie fixe. La partie fixe renvoie à une table contenant le lien entre cette partie et le nom de la variable...

hello, j'ai quelque petits soucis avec le code ci dessus

je n'arrive pas a faire telecharger un fichier dans un dossier different que celui ou se trouve le fichier php ou directement d'un lien complet http://www.monsite.com/download/fichier.exe

$file = monfichier.exe (est une variable d'un formulaire de la page precedente)

<?php
$file = $_GET["file"];
if (ereg(".exe",$file)) {
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$file);
header("Location:".$file);
}
?>

le probleme est que je ne peut pas mettre les fichier EXE dans le meme repertoire que le fichier telecharger.php

est t'il possible de rendre ce code de maniere a ce que je puisse faire ceci:

http://www.monsite.com/telecharger.php?file=http://www....

ou simplement le faire changer de repertoire..

http://www.monsite.com/telecharger.php?file=/download/m...

si quelqu'un a une idee, il est le bienvenue :) 
Expert Programmation

le nom de ton fichier est donné par la variable file, et c'est la seule indication que tu donnes au header pour localiser ton fichier. Le header n'ayant pour tout arborescence le nom de ton fichier, il cherchera dans le même répertoire que le fichier php contenant le header.

Si tu veux aller dans un autre répertoire il faut spécifier le chemin relatif.

En imaginant que ton fichier php est à la racine du site et et que tous tes fichiers sont dans un dossier "download" lui aussi à la racine, le header devient alors :
header("Content-Disposition: attachment; filename=download/".$file);
Lassé par la pub ? Créez un compte