Avez-vous déjà été frustré lorsque vous accédez à un site Web et que des documents, des images et d'autres contenus sont disponibles en téléchargement et que vous souhaitez le faire, téléchargez-le! Au lieu de cela, lorsque vous cliquez sur un élément de contenu, il commence à s'ouvrir dans votre navigateur. J'étais confronté à ce problème lors d'un projet pour une entreprise médicale et ils avaient besoin que leurs fichiers PDF soient téléchargés et non ouverts. Eh bien, il existe un moyen de lui faire ouvrir la boîte de dialogue Enregistrer sous.

Pour ce didacticiel, nous supposerons que les fichiers sont stockés localement sur le serveur et non dans une base de données. (C'est une discussion complètement différente)

Tout d'abord, vous devez connaître l'emplacement de vos fichiers. Supposons donc que vos fichiers se trouvent sur //yourserver.com/files/filename.ext. Nous supposerons que le Server.MapPath est "/ files".

Donc, à ce stade, créons le fichier ASP qui contrôlera le téléchargement du fichier. Commencez par créer un nouveau document vierge à l'aide du Bloc-notes ou de votre éditeur HTML préféré. Placez le code ASP suivant:

<%
'=======================
'Define the names of your functions
'=======================
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'=======================
'Get the actual file name from the URL that is passed to the browser
'=======================
FileName = request.querystring("filename") 'Get the name from the URL
'=======================
'GIVE AN ERROR MESSAGE IF THE URL IS EMPTY
'=======================
if FileName = "" Then
response.write "Filename Not specified."
response.end
end if
'=======================
'prevent access to certain files
'=======================
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
select case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
response.write "You cannot access these file types."
response.end
end select
'=======================
'Start the download process if all is good
'=======================
response.clear
response.contentType = "application/octet-stream"
response.addheader "content-disposition", "attachment; filename=" & FileName
set stream = server.CreateObject("ADODB.Stream")
stream.type = adTypeBinary
stream.open
stream.LoadFromFile Server.MapPath("/files") & FileName
while not stream.EOS
response.BinaryWrite Stream.Read(1024 * 64)
wend
stream.Close
Set stream = Nothing
response.Flush
response.End
%>


C'est tout pour celui-là. Maintenant, enregistrez et téléchargez ce fichier sur votre serveur et nommez-le fileownloader.asp

Supposons maintenant que le nom de fichier sur votre serveur soit familytree.pdf

Ensuite, vous passeriez simplement l'URL suivante dans votre navigateur et la boîte de dialogue Fichier Enregistrer en tant qu'ouverture apparaîtra.

//votreserveur.com/filedownloader.asp?filename=familytree.pdf

C'est ça! Vous devriez alors voir ceci:



Bonne chance et vous pouvez améliorer cela en utilisant des bases de données et d'autres fonctions intéressantes pour vous assurer que les fichiers auxquels vous souhaitez que vos utilisateurs accèdent aient la possibilité d'être téléchargés et non ouverts dans leur navigateur Web actuel, ce qui leur permet de "rester" sur votre site Web. .

Instructions Vidéo: Réparation des applications de la suite Microsoft Office (Avril 2024).