Ir para conteúdo

POWERED BY:

Arquivado

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

stage1004

Como fazer este link?

Recommended Posts

Bom, primeiro queria mostrar o código, ele busca em pastas e mostra o resultado se o arquivo existe na pasta.

QUando ele mostra o resultado, ele só mostra, ele não gera link daquele arquivo que ele encontrou!

Queria tentar fazer com que ele gerasse o link daquele arquivo que ele encontrou, assim podendo a pessoa fazer o download do resultado. ( é um site de intranet )

 

A primeira parte do código esta aqui:

 

 

 

<%
'Desenvolvido por Diogo Silvério(diogosilverio@yahoo.com.br)
'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores.
'A alteração ficou legal?? Manda pra mim o link
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------
'Esse sisteminha de busca recursiva é parte de um sistema maior que
'tenho trabalhado, é semelhante a um gerenciador de FTP, só que em ASP ^^
'[]'s e lembrem, esse código é livre para N-Finalidades, exceto venda a parte

Option Explicit
On Error Resume Next

Dim nomeBusca, pastaBusca, tipoBusca
Dim resultado,vasculhado, qtdPasta
Dim agora, maistarde, depoisdabusca ':PpPPP
Dim subpastas

agora = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

resultado = 0
vasculhado = 0
qtdPasta = 0

nomeBusca = Request.Form("txt_busca")
pastaBusca = Request.Form("txt_pasta")
subpastas = Request.Form("subpasta")
tipoBusca = Request.Form("opcao")

efetuaBusca "|-", nomeBusca, pastaBusca, tipoBusca

Sub efetuaBusca(nivel, nome, pastaBusca, tipoBusca)
	Dim objFso, objPasta, objArq
	Dim arquivo, pasta
	
	Set objFso = Server.CreateObject("Scripting.FileSystemObject")
	Set objPasta = objFSO.GetFolder("C:\Inetpub\wwwroot\caij\Nova pasta")
	
	if(subpastas = 1) then
		For each pasta in objPasta.SubFolders
			Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
			efetuaBusca (nivel & "-"), nome, pasta, tipoBusca
			
			qtdPasta = qtdPasta + 1
		Next
	else
			For each pasta in objPasta.SubFolders
				Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
				qtdPasta = qtdPasta + 1	
			next
	end if
	
	For each arquivo in objPasta.Files
		Select Case tipoBusca
			Case 0 : 
					if(nomeBusca = nomeBusca) then
					    <a href="arquivo.Name" ></a></td>
					
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
					
						resultado = resultado + 1
					end if
			Case 1 :
					if(InStr(LCase(arquivo.name), LCase(nomeBusca))) then
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
						resultado = resultado + 1
					end if
			Case 2 :			
					if((LCase(arquivo.name) = LCase(nomeBusca)) or (InStr(LCase(arquivo.name), LCase(nomeBusca)))) then
						Response.Write(nivel & "<img src='arquivo.gif' /><font color='red'> " & arquivo.Name  & "</font><br/>" & VbCRLF)
						resultado = resultado + 1
					else
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
					End if
		End Select
		vasculhado = vasculhado + 1
	Next
	
	Set objFso = nothing
	Set objPasta = nothing
End Sub

maistarde = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

depoisdabusca = maistarde - agora
%>
<div style="text-align:right"><strong><%=resultado%></strong> ocorrências de <strong>'<%=nomeBusca%>' </strong>em <strong><%=depoisdabusca%> s</strong>.<br>
<strong><%=vasculhado%></strong> arquivos em <strong><%=qtdPasta%> pastas.</strong></div>

 

No caso eu teria que inserir um link aqui nesse código, correto?

 

Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)

Mas como?

Alguem poderia me dar um help?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou colocar o caminho, tipo

strFileName = Server.MapPath( "/set/path/aqui/" & Request.QueryString( "file" ) )

defina o diretório que contém os arquivos

e concatena com seu arquivo.ext

 

um ememplo simples

 

<%
    Response.Buffer = True
    Response.Clear
    
    ' definir o diretório que contém os arquivos aqui
    strFileName = Server.MapPath( "/set/path/here/" & Request.QueryString( "file" ) )
    
    Set Sys = Server.CreateObject( "Scripting.FileSystemObject" )
    Set Bin = Sys.OpenTextFile( strFileName, 1, False )
    If Sys.FileExists( strFileName ) Then
        
        '  Defina o nome de arquivo para salvar como
        Call Response.AddHeader( "Content-Disposition", "attachment; filename=" & strFileName )
        
        ' Certifique-se de downloads do navegador, em vez de executá-lo
        Response.ContentType = "application/octet-stream"
        
        ' Enviar como um binário Byte Stream
        While Not Bin.AtEndOfStream
            Response.BinaryWrite( ChrB( Asc( Bin.Read( 1 ) ) ) )
        Wend
    Else
        Response.Redirect( "erro.html" )
    End If
    Bin.Close : Set Bin = Nothing
    Set Sys = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, nao deu erro..nem nada..mas agora nada aparece quando eu busco..

 

aparece a pagina branca..

 

Então, o meu arquivo de busca que leva o resultado é o arquivo.Name, eu fix o Server.MapPath para ele..sera q é isso mesmo?

 

ou eu tenho q fazer um separado para depois apontar para o meu lá embaixo??

 

 

<%


'Desenvolvido por Diogo Silvério(diogosilverio@yahoo.com.br)
'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores.
'A alteração ficou legal?? Manda pra mim o link
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------
'Esse sisteminha de busca recursiva é parte de um sistema maior que
'tenho trabalhado, é semelhante a um gerenciador de FTP, só que em ASP ^^
'[]'s e lembrem, esse código é livre para N-Finalidades, exceto venda a parte

Option Explicit
On Error Resume Next

Dim nomeBusca, pastaBusca, tipoBusca,teste
Dim resultado,vasculhado, qtdPasta
Dim agora, maistarde, depoisdabusca ':PpPPP
Dim subpastas
Dim strFileName

agora = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

resultado = 0
vasculhado = 0
qtdPasta = 0

nomeBusca = Request.Form("txt_busca")
pastaBusca = Request.Form("txt_pasta")
subpastas = Request.Form("subpasta")
tipoBusca = Request.Form("opcao")

efetuaBusca "|-", nomeBusca, pastaBusca, tipoBusca

Sub efetuaBusca(nivel, nome, pastaBusca, tipoBusca)
	Dim objFso, objPasta, objArq
	Dim arquivo, pasta
	
	Set objFso = Server.CreateObject("Scripting.FileSystemObject")
	Set objPasta = objFSO.GetFolder("C:\Inetpub\wwwroot\caij\Nova pasta")



	strFileName = Server.MapPath( "C:\Inetpub\wwwroot\caij\Nova pasta" & Request.QueryString( "arquivo.Name") )
	




	if(subpastas = 1) then
		For each pasta in objPasta.SubFolders
			Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
			efetuaBusca (nivel & "-"), nome, pasta, tipoBusca
			
			qtdPasta = qtdPasta + 1
		Next
	else
			For each pasta in objPasta.SubFolders
				Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
				qtdPasta = qtdPasta + 1	
			next
	end if
	
	For each arquivo in objPasta.Files
		Select Case tipoBusca
			Case 0 : 
					if(nomeBusca = nomeBusca) then
					    
					 
						Response.Write(nivel & "<img src='arquivo.gif' /> "&  arquivo.Name & "<br/>" & VbCRLF)
					
						resultado = resultado + 1
					end if
			Case 1 :
			 
					if(InStr(LCase(arquivo.name), LCase(nomeBusca))) then
						Response.Write(nivel & "<img src='arquivo.gif' /> " &  arquivo.Name & "<br/>" & VbCRLF)
						resultado = resultado + 1
					end if
			Case 2 :	
			 		
					if((LCase(arquivo.name) = LCase(nomeBusca)) or (InStr(LCase(arquivo.name), LCase(nomeBusca)))) then
						Response.Write(nivel & "<img src='arquivo.gif' /><font color='red'> " & arquivo.Name  & "</font><br/>" & VbCRLF)
						resultado = resultado + 1
					else
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
					End if
		End Select
		vasculhado = vasculhado + 1
	Next
	
	Set objFso = nothing
	Set objPasta = nothing
End Sub




maistarde = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

depoisdabusca = maistarde - agora



%>
<div style="text-align:right"><strong><%=resultado%></strong> ocorrências de <strong>'<%=nomeBusca%>' </strong>em <strong><%=depoisdabusca%> s</strong>.<br>
<strong><%=vasculhado%></strong> arquivos em <strong><%=qtdPasta%> pastas.</strong></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha assim, desse modo você força o download

 

<%
'É necessário passar o nome do arquivo no FORM
Dim Arquivo
Arquivo = Request("arquivo")

Response.Buffer = True
Response.AddHeader "Content-Type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment; filename=" & Arquivo
Response.Flush

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Server.MapPath(Arquivo)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.Flush
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma coisa..

 

não aparece nada..nem link nem o arquivo na pagina..

 

=(

 

* eu não faço acesso BD..

 

 

<%



'Desenvolvido por Diogo Silvério(diogosilverio@yahoo.com.br)
'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores.
'A alteração ficou legal?? Manda pra mim o link
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------
'Esse sisteminha de busca recursiva é parte de um sistema maior que
'tenho trabalhado, é semelhante a um gerenciador de FTP, só que em ASP ^^
'[]'s e lembrem, esse código é livre para N-Finalidades, exceto venda a parte

Option Explicit
On Error Resume Next

Dim nomeBusca, pastaBusca, tipoBusca,teste
Dim resultado,vasculhado, qtdPasta
Dim agora, maistarde, depoisdabusca ':PpPPP
Dim subpastas
Dim strFileName
Dim Link

agora = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

resultado = 0
vasculhado = 0
qtdPasta = 0


nomeBusca = Request.Form("txt_busca")
pastaBusca = Request.Form("txt_pasta")
subpastas = Request.Form("subpasta")
tipoBusca = Request.Form("opcao")

efetuaBusca "|-", nomeBusca, pastaBusca, tipoBusca

Sub efetuaBusca(nivel, nome, pastaBusca, tipoBusca)
	Dim objFso, objPasta, objArq,FileName
	Dim arquivo, pasta
	
	Set objFso = Server.CreateObject("Scripting.FileSystemObject")
	Set objPasta = objFSO.GetFolder("C:\Inetpub\wwwroot\caij\Nova pasta")
	
	
	if(subpastas = 1) then
		For each pasta in objPasta.SubFolders
			Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
			efetuaBusca (nivel & "-"), nome, pasta, tipoBusca
			
			qtdPasta = qtdPasta + 1
		Next
	else
			For each pasta in objPasta.SubFolders
				Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
				qtdPasta = qtdPasta + 1	
			next
	end if
	
'É necessário passar o nome do arquivo no FORM
Dim Arquivo1
Arquivo1 = Request( arquivo.Name )

Response.Buffer = True
Response.AddHeader "Content-Type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment; filename=" & Arquivo1
Response.Flush

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile Server.MapPath(Arquivo1)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Response.Flush
	
	For each arquivo in objPasta.Files
		Select Case tipoBusca
			Case 0 : 
					if(nomeBusca = nomeBusca) then
					    
					  
						Response.Write(nivel & "<img src='arquivo.gif' /> "&  arquivo.Name & "<br/>" & VbCRLF)
					
						resultado = resultado + 1
					end if
			Case 1 :
			 
					if(InStr(LCase(arquivo.name), LCase(nomeBusca))) then
						Response.Write(nivel & "<img src='arquivo.gif' /> " &  arquivo.Name & "<br/>" & VbCRLF)
						resultado = resultado + 1
					end if
			Case 2 :	
			 		
					if((LCase(arquivo.name) = LCase(nomeBusca)) or (InStr(LCase(arquivo.name), LCase(nomeBusca)))) then
						Response.Write(nivel & "<img src='arquivo.gif' /><font color='red'> "  & arquivo.Name  & "</font><br/>" & VbCRLF)
						resultado = resultado + 1
					else
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
					End if
		End Select
		vasculhado = vasculhado + 1
	Next
	
	Set objFso = nothing
	Set objPasta = nothing
End Sub




maistarde = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

depoisdabusca = maistarde - agora



%>
<div style="text-align:right"><strong><%=resultado%></strong> ocorrências de <strong>'<%=nomeBusca%>' </strong>em <strong><%=depoisdabusca%> s</strong>.<br>
<strong><%=vasculhado%></strong> arquivos em <strong><%=qtdPasta%> pastas.</strong></div>

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.