Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] ASP File Explorer

Recommended Posts

Este script permite ao usuário navegar na estrutura de arquivos de qualquer pasta no servidor da web (permissões) e permite-lhes pegar qualquer arquivo, clicando sobre ele. Apenas o diretório que você especificou como raiz e suas sub-diretórios pode ser explorada.

 

A vantagem é que você pode manter seus arquivos fora do seu diretório inetpub, longe do controle do servidor. Isto significa que seus usuários podem acessar apenas os arquivos através de seus scripts. A localização real dos arquivos no disco está escondido. Isso permite que você construa em qualquer acesso recursos que você pode querer adicionar tais como garantir as pessoas autenticadas para o seu site antes de receber qualquer arquivos.

 

Quando um usuário clica em um arquivo para fazer o download o script funciona , tipo MIME.

 

browse.asp

<%@ Language=VBScript %><%
option explicit
dim sRoot, sDir, sParent, objFSO, objFolder, objFile, objSubFolder, sSize

sRoot = "c:webfiles"


sDir = Request("Dir")


sDir = sDir & "\"

Response.Write "<h1>" & sDir & "</h1>" & vbCRLF


Set objFSO = CreateObject("Scripting.FileSystemObject")
on error resume next

Set objFolder = objFSO.GetFolder(sRoot & sDir)
if err.number <> 0 then
	Response.Write "Não foi possível abrir a pasta"
	Response.End
end if
on error goto 0


sParent = objFSO.GetParentFolderName(objFolder.Path)

sParent = mid(sParent, len(sRoot) + 1)

Response.Write "<table border=""1"">"


Response.Write "<tr><td colspan=3><a href=""browse.asp?dir=" & Server.URLEncode(sParent) & """>Parent folder</a></td></tr>" & vbCRLF


For Each objSubFolder In objFolder.SubFolders

	Response.Write "<tr><td colspan=3><a href=""browse.asp?dir=" & Server.URLEncode(sDir & objSubFolder.Name) & """>" & objSubFolder.Name & "</a></td></tr>" & vbCRLF
Next


For Each objFile In objFolder.Files
	if Clng(objFile.Size) < 1024 then
		sSize = objFile.Size & " bytes"
	else
		sSize = Clng(objFile.Size / 1024) & " KB"
	end if

	Response.Write "<tr><td><a href=""show.asp?file=" & server.URLEncode(objFile.Name) & "&dir=" & server.URLEncode (sDir) & """>" & objFile.Name & "</a></td><td>" & sSize & "</td><td>" & objFile.Type & "</td></tr>" & vbCRLF
Next

Response.Write "</table>"
%>

show.asp

<%@ Language=VBScript %><%
option explicit
dim sFile, sRoot, sDir, sExt, objShell, objFSO, sMIME, objStream


sRoot = "c:webfiles"


sDir = Request("dir")


sFile = Request("file")


set objFSO = server.CreateObject("Scripting.FileSystemObject")
sExt = objFSO.GetExtensionName (sFile)
set objFSO = nothing

Set objShell = Server.CreateObject("Wscript.Shell")
On Error Resume Next

sMIME = objShell.RegRead("HKEY_CLASSES_ROOT." & sExt & "Content Type")
On Error GoTo 0
if len(sMIME) = 0 then

	sMIME = "application/octetstream"
end if
set objShell = nothing


Response.ContentType = sMIME


Response.AddHeader "Content-Disposition", "filename=" & sFile & ";"


Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open

objStream.Type = 1

objStream.LoadFromFile sRoot & sDir & sFile


Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.