Bonjour,

Je crée sur mon site un lien vers un document présent sur le site lui-même.
Par exemple un document WORD.doc ou un document EXCEL .xls:

<a href=toto.doc>word</a>
<a href=tutul.xls>excel</a>

Ce qui se passe sur mon PC est étonnant !

Si on clique sur le lien vers le .doc, le document WORD est ouvert dans sa propre fenêtre.
Mais si l'on clique sur un .xls, le document EXCEL est téléchargé, et non pas ouvert comme un document WORD.

Y a-t-il moyen de contrôler cela ? (créer séparément des liens de téléchargement ou d'ouverture de fichier, indépendamment du type de fichier)

1) soit localement dans le PC du client qui doit bien considérer les 2 types de fichiers différemment (base de registre windows ? je n'ai pas essayé sous linux ou mac-os)
2) soit (bien plus fort !) à partir du serveur qui préciserait comment doit se comporter le client au moment du clic sur le <a href=....

Je sais que la réponse est oui car la plupart des sites professionnels le font.
Mais comment s'y prennent-ils ? c'est mystérieux pour moi...

Merci d'avance pour vos réponses...
Salut,

par exemple :

index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Test</title> 
</head> 
<body>
<p><a href="upload/downloader.php?doc=test1.doc">Télécharger test1.doc (100ko)</a></p>
<p><a href="upload/downloader.php?doc=test2.xls">Télécharger test2.xls (240ko)</a></p>
</body> 
</html>
downloader.php
<?php
$doc = !empty($_GET['doc']) ? trim($_GET['doc']) : '';
if(!empty($doc) && file_exists($doc)) {

	$mime = 'application/octet-stream';
	$taille = filesize($doc);

	// Téléchargement du fichier
	header("Content-disposition: attachment; filename=\"$doc\"");
	header("Content-Type: $mime");
	header("Content-Transfer-Encoding: binary");
	header("Content-Length: $taille");
	header("Pragma: no-cache");
	header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
	header("Expires: 0");
	readfile($doc);
}
?>
Bonjour,
Merci beaucoup pour votre réponse, celà fonctionne très bien.
Désolé pour ma réponse tardive, j'ai été absent plusieurs jours.
Je ne parviens par contre toujours pas à créer des liens qui provoquent systématiquement l'ouverture du document (sous réserve que l'application ou le plugin soit installé, bien sûr)
Auriez-vous une suggestion ?
Merci d'avance,
Henri
Modérateur
Bonjour,

Tu peux essayer en mettant le bon mimetype du document dans la variable $mime, par exemple application/pdf pour les PDF, et en essayant avec Content-disposition: inline.
Modifié par Tony Monast (02 Dec 2010 - 14:57)
Merci pour ces réponses, j'avais un problème similaire que j'avais mis de coté et avec vos explications c'est bon ça agit comme je le souhaitais.