Forum de discussion
Forum « Programmation HTML » (archives)
Re: conseil téléchargement
Envoyé: 11 janvier 2002, 10h07 par Oznog
Le Trucs simple est de mettre ton fichier PDF dans un ZIP, idéalement avec autoextraction. Ou encore enlever l'association dans les navigateur local des extension PDF, il forcera alors le téléchargement puisque qu'il ne reconnaît plus le format...
Mais si tu peux utiliser des langages serveur comme la ASP, tu peux forcer un téléchargement.
En ASP
Response.AddHeader "content-disposition","attachment; filename=fname.ext"
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q260519
Voici un très bon code pour le faire en ASP
<%
'8***********************************************8
' Jason Withrow - For ASP101 July 2001
' This page forces the save as dialogue to prevent
' files from being opened in the browser.
'
' jwithrow@mediaone.net
'8***********************************************8
Response.Buffer = True
Dim strFilePath, strFileSize, strFileName
Const adTypeBinary = 1
strFilePath = Request.QueryString("File")
strFileSize = Request.QueryString("Size")
strFileName = Request.QueryString("Name")
Response.Clear
'8*******************************8
' Requires MDAC 2.5 to be stable
' I recommend MDAC 2.6 or 2.7
'8*******************************8
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
strFileType = lcase(Right(strFileName, 4))
' Feel Free to Add Your Own Content-Types Here
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select
Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.AddHeader "Content-Length", strFileSize
' In a Perfect World, Your Client would also have UTF-8 as the default
' In Their Browser
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
%>
En PHP c'est
<?
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");
...
?>
http://www.ietf.org/rfc/rfc2183.txt
Ciao
Oznog
Réponses
|