Forum de discussion
Forum « Programmation ASP » (archives)
Re: forcer un téléchargenment
Envoyé: 13 mai 2006, 11h28 par Oznog
Désolé, il faut spécifier l'en-tête mais aussi le code qui attache le fichier à l'en-tête http. Voilà un exemple simple et l'autre avec un « Stream ».
<%
Response.Buffer = true
' un ScriptTimeout peut toujours être utile
Server.ScriptTimeout = 30000
Dim sNomFichier
sNomFichier = "fichier.mp3"
Response.ContentType = "application/x-msdownload"
Response.Addheader "Content-Disposition", "attachment; filename=" & sNomFichier
Response.End
%>
OU Avec un « Stream » et un bon gestionnaire d'erreur.
<%@ Language="VBScript"%>
<%option explicit%>
<%response.buffer=true%>
<%Server.ScriptTimeout = 30000%>
<%
call twForceSauvegarde(request.querystring("f"))
function twForceSauvegarde(sFichier)
Dim sCheminFichier, oFlux, oFso, oFichier
sCheminFichier = server.MapPath(sFichier)
Set oFlux = Server.CreateObject("ADODB.Stream")
oFlux.Open
oFlux.Type = 1
on error resume next
Set oFso = Server.CreateObject("Scripting.FileSystemObject")
if not oFso.FileExists(sCheminFichier) then
Response.Write("<p><b>Erreur</b> : Le fichier " & sCheminFichier & " n'existe pas!<p>")
Response.End
end if
Set oFichier = oFso.GetFile(sCheminFichier)
oFlux.LoadFromFile(sCheminFichier)
if err then
Response.Write("<p><b>Erreur</b> : " & err.Description & "<p>")
Response.End
end if
Response.Clear
Response.ContentType = "application/x-msdownload"
Response.AddHeader "Content-Disposition", "attachment; filename=" & sFichier ' & oFichier.name
Response.AddHeader "Content-Length", oFichier.size
Response.BinaryWrite oFlux.Read
Response.Flush
oFlux.Close
Set oFlux = Nothing
end function
%>
Note qu'il semblerait que certain serveur empêche le MP3 de passer ?? LE fichier arrive mais vide (0 octet).
Ciao
Oznog
Réponses
|