ASP Classique de télécharger le fichier script
J'ai un site web construit en ASP Classique, et je rencontre un problème avec un script qui permet à un utilisateur de télécharger un fichier, mais cache le chemin d'accès au fichier.
Lorsqu'un utilisateur est sur une page, ils vont voir un lien. Le lien est codé comme ceci:
<a href="download.asp?file=FILE-NAME-HERE" target="_blank">Download File</a>
Ce lien pour télécharger.asp lorsque le code est exécuté pour obtenir le fichier et de le livrer. Voici le code que j'ai droit:
<%
const adTypeBinary = 1
dim strFilePath, strFile
strFilePath = "/_uploads/private/"
strFile = Request.QueryString("file")
if strFile <> "" then
'Set the content type to the specific type that you are sending.
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=" & strFile
set objStream = Server.CreateObject("ADODB.Stream")
objStream.open
objStream.type = adTypeBinary
objStream.LoadFromFile(strFilePath & strFile)
response.binarywrite objStream.Read
objStream.close
Set objStream = nothing
end if
%>
Ce code que j'ai mis en place à partir des deux questions sur ce site (Comment télécharger les fichiers à l'aide de vbscript en asp classique), et de http://support.microsoft.com/kb/276488
Ce qui se passe, cependant, est que le téléchargement.page asp est de me donner un "fichier non trouvé" erreur, même si le fichier est bien dans le répertoire web "/_uploads/private/".
Le type de fichier qui pourrait être l'une de plusieurs, y compris pdf, xls, docx, etc.
Est-il quelque chose dans mon code qui ne permet pas que le fichier soit trouvé?
Oui, les autorisations en cours valeurs pour le "/_uploads/private/" dossier sont en 755.
Essayez l'ensemble de la lettre de lecteur + chemin d'accès.
Vous pouvez essayer d'utiliser
Server.MapPath
pour résoudre le chemin, c'est à dire objStream.LoadFromFile(Server.MapPath(strFilePath & strFile))
OriginalL'auteur user2762748 | 2013-11-04
Vous devez vous connecter pour publier un commentaire.
Merci à l'utilisateur oracle certified professional, dans les commentaires ci-dessus.
Ce qui a fonctionné a été l'ajout de Serveur".MapPath" pour résoudre l'emplacement du fichier.
Au lieu d'utiliser:
Je l'ai changé pour:
Maintenant le lien déclenche le fichier à télécharger correctement.
OriginalL'auteur user2762748