Lien pour enregistrer fichier et pas afficher

Lien pour enregistrer fichier et pas afficher - HTML/CSS - Programmation

Marsh Posté le 19-04-2009 à 19:48:34    

Bonjour,
 
J'ai un soucis tout bête :
Sur mon site j'ai des liens (<a href ....) pointant sur des fichier .txt et je voudrais qu'au lieu d'ouvrir le fichier dans le navigateur, il me propose de l'enregistrer.
 
Ce site me sert d'exercie pour du XHTML, header :

<!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">
 
<head>
 <title>Dépot</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
 <style type="text/css" media="screen">@import "index.css";</style>
</head>


 
Mais rien de spécial dans les liens :

<a href="txt/maj20090408.txt" ><img src="img/nzb.gif" alt="Ajouté le 08-04-2009" title="Ajouté le 08-04-2009 /></a>


 
Des pistes ?
 

Reply

Marsh Posté le 19-04-2009 à 19:48:34   

Reply

Marsh Posté le 19-04-2009 à 20:51:58    

c'est dans la config d'apache (si 'es sous pache bien sur)

Reply

Marsh Posté le 19-04-2009 à 21:07:36    

stealth35 a écrit :

c'est dans la config d'apache (si 'es sous pache bien sur)

Arrff, c'est un hebergement mutualisé donc pas accès aux conf d'Apache... Tu aurais une idée plus précise de la conf pour que je me renseigne auprès des techniciens de mon hébergeur s'ils peuvent faire la modif ?
 
En tout cas merci pour cette réponse rapide.
 

Reply

Marsh Posté le 20-04-2009 à 01:08:22    

Avec un truc dans le style  

Code :
  1. <?php
  2.   header ("Content-disposition:filename=tonFichier.txt" );
  3.   header ("Content-type:application/octetstream" );
  4. ?>


ca pourrait ptetre marcher, à tester :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 20-04-2009 à 01:10:53    

dans ton script et du coté HTML ca donnerait je pense

Code :
  1. <a href="forceDL.php?src=txt/maj20090408.txt" ><img src="img/nzb.gif" alt="Ajouté le 08-04-2009" title="Ajouté le 08-04-2009 /></a>


 
et du coté PHP

Code :
  1. <?php
  2.   $file = $_GET['src'];
  3.   header ("Content-disposition:filename=" . $file );
  4.   header ("Content-type:application/octetstream" );
  5. ?>


 
encore une fois c'est à tester (et il faut gérer aussi les caractères "spéciaux" dans l'URL :o )...


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 20-04-2009 à 09:11:41    

SICKofitALL a écrit :

et du coté PHP

Code :
  1. <?php
  2.   $file = $_GET['src'];
  3.   header ("Content-disposition:filename=" . $file );
  4.   header ("Content-type:application/octetstream" );
  5. ?>


 
encore une fois c'est à tester (et il faut gérer aussi les caractères "spéciaux" dans l'URL :o )...


Je completerai avec :

Code :
  1. <?php
  2. $filename = $_GET["src"];
  3. header("Content-disposition: attachment; filename=$filename" );
  4. header("Content-Type: application/force-download" ); //Force le téléchargement
  5. header("Content-Length: ".filesize($filename)); //Pour indiquer la taille du fichier, permet au navigateur d'évaluer le temps de téléchargement
  6.  
  7. readfile($filename); //On lit le fichier et on balance tout dans le flux
  8. ?>


 [:book86]  
A moins que "octetstream" résume toutes mes lignes superflux qui completent "force-download" (yé soui oun kich en péhachpay)


Message édité par abais le 20-04-2009 à 09:15:27

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 20-04-2009 à 09:13:45    

:jap:


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 20-04-2009 à 09:15:42    

Merci beaucoup pour ces pistes.  :bounce:  
 
En test ce soir.  :sol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed