Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Débuter
Débuter Forum d'entraide pour débuter dans la création de sites Web
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 05/06/2008, 14h50   #1
Membre régulier
 
Avatar de solorac
 
Inscription : avril 2007
Messages : 371
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : avril 2007
Messages : 371
Points : 77
Points : 77
Par défaut Enregistrement de fichier via un lien

Bonjour la Communauté,

J'aimerai savoir comment je peux faire pour que le lien que je viens créer sur mon site me demande si je veux exécuter ou enregistrer le document auquel le lien fait référence. Car actuellement, si je clique sur ledit lien, le fichier(excel en l'occurence) s'ouvre sans que je puisse y faire quelquechose.

Merci pour votre aide
solorac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 15h22   #2
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 110
Points : 35
Points : 35
Salut,

Met un atrget '_blank' à ton lien , qui lie vers un script php du style :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$nom_fichier = "chemin_vers_ton_fichier";

    $taille_fichier = filesize($nom_fichier);

   header("content-type: application/octet-stream");

   header("Content-Length: $taille_fichier");

   header("Content-Disposition: attachment; filename=".$nom_fichier);
   
   readfile($nom_fichier);
A l'issue, ca proposera l'ouverture ou le telechargement à l'utilisateur.
escteban est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 17h08   #3
Membre régulier
 
Avatar de solorac
 
Inscription : avril 2007
Messages : 371
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : avril 2007
Messages : 371
Points : 77
Points : 77
Merci pour ta prompte réponse.

Mais qu'est-ce un "un atrget" blank et surtout ou entrer ton code php ?
Je ne connais rien du tout en php.
solorac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 17h22   #4
Membre du Club
 
Avatar de razorlok
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 66
Points : 66
pour refermer la balise de ton fichier. Ca permet d'ouvrir le lien sur une nouvelle page.
__________________
Wear some golf shoes, otherwise we'll never get out of this place alive.
razorlok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 10h48   #5
Membre régulier
 
Avatar de solorac
 
Inscription : avril 2007
Messages : 371
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : avril 2007
Messages : 371
Points : 77
Points : 77
Merci pour ton aide.

Simplement, concernant le code où dois-je le mettre?

A bientôt
solorac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 12h08   #6
Membre actif
 
Avatar de tim974
 
Inscription : mai 2008
Messages : 170
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 170
Points : 169
Points : 169
salut, le target="_blank" se place à l'intérieur de la balise <a>, mais il existe quelques bugs selon le navigateur, une version mieux contrôlée se déroule en 2 étapes :

d'abord le lien,
Code :
<a href="download.php?Fichier_a_telecharger=monfichier.txt&chemin=test">Télécharger</a>
puis le code du fichier download.php
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?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);

?>
tim974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 13h38   #7
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 110
Points : 35
Points : 35
Je ne suis plus sur , mais si tu veux donner un choix a l utilisateur, remplace plutot
Code :
1
2
header("Content-Type: application/force-download");
par

Code :
1
2
header("Content-Type: application/octet-stream");
++
escteban est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 10h11   #8
Membre régulier
 
Avatar de solorac
 
Inscription : avril 2007
Messages : 371
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : avril 2007
Messages : 371
Points : 77
Points : 77
Merci à vous deux pour vos réponses.
solorac 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 02h01.


 
 
 
 
Partenaires

Hébergement Web