Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/12/2011, 20h58   #1
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Par défaut Enregistrer un fichier

Bonjour à tous,

Je débute en HTML et je galère depuis 2 jours sur un problème.

J'ai fait une page HTML avec un lien sur un document texte.
Cette page HTML ne fait pas partie d'un site mais sera intégrée dans un fichier CHM.
Je souhaiterais que lorsque l'utilisateur clique sur le lien, il puisse enregistrer directement le fichier.

Donc ma question est :
Est-il possible de faire cela sans que ne soit une page Weeb ?
Et si oui comment faire ?

Souvent mes recherches m'ont renvoyées sur le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php 
 
// on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions 
 
switch(strrchr(basename($Fichier_a_telecharger), ".")) {
 
case ".gz": $type = "application/x-gzip"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
 
}
 
header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger)); 
header("Pragma: no-cache"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
header("Expires: 0"); 
readfile($chemin . $Fichier_a_telecharger); 
?>
Code que j'enregistre dans un fichier situé au même endroit que ma page HTML, et que je nomme « Telecharger.php ».
Ensuite à partir de ma page HTML, j'appelle le code comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>Test du téléchargement d'un fichier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
 
<a href="telecharger.php?Fichier_a_telecharger=MyFile.txt&chemin=DownLoad/">Télécharger</a> 
 
</body>
</html>
J'ai malgré tout un doute sur le comment définir mes variables.
« Fichier_a_Telecharger » est-il bien simplement le nom du fichier texte ?
« chemin » est-il le chemin d'accès au répertoire contenant le fichier texte ?

Enfin, sur les tests que j'ai effectué, le lien fonctionne mais il m'ouvre une nouvelle page avec le code php.

Merci de bien vouloir m'aider.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 10h24   #2
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 311
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 311
Points : 4 506
Points : 4 506
soit tu utilise un lien de type file soit tu utilise ton script.

maintenant :
Citation:
Enfin, sur les tests que j'ai effectué, le lien fonctionne mais il m'ouvre une nouvelle page avec le code php.
cela laisse a penser que ton serveur ne prend pas en compte le php. est tu sur de ça au moins avant de faire tes tests?
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 20h12   #3
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir,

Merci de bien vouloir m'aider.
Je ne sais pas si mon serveur prend en compte le php.
Je suis simplement sur Internet explorer.
De plus, mon projet n'a pas but à servir sur un site mais mes pages HTML seront intégrées dans un fichier *.chm.

Comment faire pour savoir si mon PC prend en compte le php ?
Mon PC est tout neuf et est en Seven/Office 2007.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 16h10   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Citation:
Envoyé par marsouin_89 Voir le message
Comment faire pour savoir si mon PC prend en compte le php ?
Mon PC est tout neuf et est en Seven/Office 2007.
A priori tu travailles en local, cond la réponse est simple : tu as un serveur PHP si tu l'as installé. Si tu n'as pas installé de serveur Apache, Wamp, EasyPHP ou assimilé, c'est que tu n'en as pas.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 20h27   #5
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir Célira,

En effet, je suis en local.
Conclusion, je ne pourrais pas faire ce que je souhaites.

Merci de vos remarques.

Sujet clos et on passe à autre chose.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h24.


 
 
 
 
Partenaires

Hébergement Web