Faire telecharger un fichier .exe
Résolu
nocilex
Messages postés
43
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour. Depuis quelque temps je galère a faire une page web avec mon de passe pour faire telecharger un fichier .exe .
Tous est bon sauf au téléchargement. Quand je le fais sa télécharge en txt et donc sa ne marche pas. Donc je voudrais savoir si des gens si connaisse et qui si il peuvent me dire quoi changer dans se script :
Ou si il savent comment faire pour que sa lance le téléchargement par un lien : par exemple http://trucatelecharger.com/
Tous est bon sauf au téléchargement. Quand je le fais sa télécharge en txt et donc sa ne marche pas. Donc je voudrais savoir si des gens si connaisse et qui si il peuvent me dire quoi changer dans se script :
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename='Own-Life.exe'");
echo $your_text;
Ou si il savent comment faire pour que sa lance le téléchargement par un lien : par exemple http://trucatelecharger.com/
2 réponses
-
Bonjour,
Une piste :
Toi tu as mis :header("Content-type: text/plain");
DOnc... c'est logique qu'il te le fasse en mode texte...
Tu veux pour une application..
donc sûrement un truc du genreheader('Content-Type: application/octet-stream');
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
La façon habituelle de faire télécharger un fichier est que le navigateur demande le fichier, en envoyant au serveur web un url comme:<a href="http://download.httpwatch.com/httpwatch.exe" rel="nofollow noopener noreferrer" target="_blank">Download</a>
Dans ce cas-là, pas de code php impliqué, c'est le serveur web qui va renvoyer le fichier.
Je pense que tu essaies de faire autrement : tu veux que ton code php envoie le contenu du fichier au navigateur, mais tu lui envoies le nom du fichier, pas son contenu. Le navigateur ne peut rien faire avec ce nom.-
-
-
Si tu veux faire comme tu as choisi, ton code php doit lire le fichier et en envoyer le contenu.
Il me semble que la technique est décrite ici :
https://ryansechrest.com/2012/07/send-and-receive-binary-files-using-php-and-curl/
Regarde le code PHP sous "Give the file back to the user". -
Plus simple:
https://www.php.net/manual/en/function.readfile.php<?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } ?> -
Sa ne marche pas. Je t'envoie les code pour que tu comprenne mon probléme
Le fichier que je veux installer est Own-Life.exe<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Codes d'accès au serveur central de la NASA</title> </head> <body> <?php if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "ownpass") // Si le mot de passe est bon { // On affiche les codes <?php $file = 'Own-Life.exe'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } ?> } else // Sinon, on affiche un message d'erreur { echo '<p>Mot de passe incorrect</p>'; } ?> </body> </html>
-