Foros del Web » Programando para Internet » ASP Clásico »

link a un fichero con espacios en el nombre

Estas en el tema de link a un fichero con espacios en el nombre en el foro de ASP Clásico en Foros del Web. Hola, Por favor, echadme una mano. Estoy programando un buscador de ficheros word con asp y hasta ahora funciona todo, excepto que para acceder a ...
  #1 (permalink)  
Antiguo 05/04/2005, 06:06
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
link a un fichero con espacios en el nombre

Hola,
Por favor, echadme una mano. Estoy programando un buscador de ficheros word con asp y hasta ahora funciona todo, excepto que para acceder a los ficheros que encuentro he creado un hiperenlace de la forma:


SearchResponse= SearchResponse +"<TR><TD>"+ Wfile + "</TD><TD ALIGN=CENTER VALIGN=MIDDLE>" + "<A Href="+ "file://c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS%2005" + "/" + wfile +"> VER </A></TD></TR>"


donde wfile es el nombre del fichero.

Pero tengo el problema que el nombre del fichero en word es algo asi como:
11 de enero revision.doc
y cuando pincho en el enlace, solo me escribe la direccion hasta el 11 luego omite el resto y no hace nada.
Podriais decirme como puedo arreglar eso?.

Gracias
  #2 (permalink)  
Antiguo 05/04/2005, 06:08
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
creo que el espacio en balnco se coloca %20.

pero si lo estas haciendo en asp usa el html econde ... creo que con eso funciona.
creo
  #3 (permalink)  
Antiguo 05/04/2005, 06:11
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 21 años, 4 meses
Puntos: 6
SearchResponse=SearchResponse & "<tr><td>" & Wfile & "</td><td align=""center"" valign=""middle""><a href="" file://c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS%2005/" & wfile & """>VER</a></td></tr>"

Para crear las comillas con código ASP es usando comilla doble "", otra cosa, no uses + para concatenar, usa &

Saludos
  #4 (permalink)  
Antiguo 05/04/2005, 06:49
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Hola de nuevo, antes de nada gracias por las contestaciones, pero desgraciadamente no funciona con ninguna de las dos ya habia probado ambas. si hago;

Response.Write ("file:///c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS%2005/" & server.HTMLEncode(wfile))

la salida en pantalla es:
file:///c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS%2005/10 de enero revision.doc

como de echo esperaba, pero al pinchar en ver para seguir ese enlace no ocurre nada. y ne la parte inferior del navegador aparece unicamente
file:///c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS%2005/10

que estoy haciendo mal!!!!

gracias.
  #5 (permalink)  
Antiguo 05/04/2005, 06:54
Avatar de Prefontaine  
Fecha de Ingreso: agosto-2004
Mensajes: 313
Antigüedad: 20 años, 8 meses
Puntos: 0
%20 pués asi deberia de ir
  #6 (permalink)  
Antiguo 05/04/2005, 07:29
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
me tinca que lo tuyo es un problema de HTML

es muy probable que no le este poniendo las comillas que deben ir al hacer el HREF del TAG < a >

Checa el html generado por tu pagina y es probable que des con el error.


checa esto.

a mi me funciono bien con IE 6

Código:
nombre_archivo = "archivo con espacios aqui.txt"
directorio = "file:///c:/"
ruta = directorio & nombre_archivo
Response.Write ("<a href="""& ruta &"""> test </a>")


ah, y revisa esto ASUNTOS%2005 que lo encuentro sospechoso

Última edición por Muzztein; 05/04/2005 a las 07:30
  #7 (permalink)  
Antiguo 05/04/2005, 07:30
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
si, si haciendo un split y luego rehaciendo la cadena introduciendo los %20 me hace la cadena bien, y en el navegador (en la esquina inferior izquierda) sale la construccion correcta, pero sigue sin suceder nada al pinchar el vinculo.

he probado a copiar tal cual la cadena que me crea a la ventana de busqueda del navegador y asi si funciona. Sera un problema del navegador o del iss mal configurado? aunque el resto de codigo asp si me lo ejecuta e incluso me hace la busqueda de los ficheros que quiero. El unico problema es que el hipervinculo no hace nada.

gracias de nuevo a todos.
  #8 (permalink)  
Antiguo 05/04/2005, 08:17
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 21 años, 4 meses
Puntos: 6
Pruébalo de hacer con un botón y javascript, pero debería de funcionar.
  #9 (permalink)  
Antiguo 05/04/2005, 10:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Suki, en qué navegador lo estás testeando?
Los enlaces tipo "file://" en IE me funcionaron pero no en Mozilla Firefox
__________________
...___...
  #10 (permalink)  
Antiguo 06/04/2005, 03:12
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
gracias por vuestras respuestas, pero sigue sin funcionar.
y ademas es que no se que hacer. grabe la pagina como pagina web completa en el escritorio, la abri desde ahi y entonces funciona. que pasaaaaaaaaaaa??????????
  #11 (permalink)  
Antiguo 06/04/2005, 04:41
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
os paso el codigo del fichero asp:

<%@language="VBScript"%>

<html>

<head>
<title>Buscar datos</title>
</head>
<body bgcolor="#FFFFCC">
<!-- Esta linea nos dira los resultados obtenidos con la palabra clave -->


<%
SearchTerm = request.form("Palabra")

Novalid=" a b c d e f g h i j k l m n o p q r s t u v w x y z si no and more"
NovalidResponse ="Inténtelo de nuevo. Su término de Búsqueda no es correcto"


if instr(SearchTerm,Novalid)=0 then
Response.Write ("<CENTER><H2>Resultado de la Busqueda</H2></CENTER>")
'FolderName= "Direccion donde se ubican los ficheros sobre los que realizo la busqueda"


FolderName="/pagina-web/HTM/asuntos 05/"
FolderName=server.htmlencode(FolderName)

ShowList()
else
Response.Write NovalidResponse
End if

SearchResponse=""
%>

<%
Sub ShowList()


FolderToCheck = server.mappath("\") &"/" & FolderName & "/"





Dim fs, f, f1, fc, s, i, C, Complete

Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(FolderToCheck)
Set fc = f.Files
For Each f1 in fc

Wfile = f1.name

'generacion del nombre del fichero para el link. Puesto que puede tener espacios
i=0
complete=wfile
C=split(complete," ",-1,1)
while (right(C(i),4)<>".doc")
if (i=0) then
complete=C(0)
else
complete=complete + "%20" + C(i)
end if
i= i + 1
wend
if i>0 then
complete=complete + "%20" + C(i)
end if




if right(wfile, 4)=".asp" OR right(wfile, 4)=".doc" then
Wfile2 = FolderToCheck & Wfile

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(Wfile2)
ct = a.ReadAll
a.close
ct2=lcase(ct)
SearchTerm2 = lcase(SearchTerm)
FichName=lcase(Wfile)
if instr(FichName,SearchTerm2)>0 then



SearchResponse= SearchResponse & "<TR><TD>"& Wfile & "</TD><TD ALIGN=""CENTER"" VALIGN=""MIDDLE"">" & "<A Href="" FILE://c:/inetpub/wwwroot/Pagina-web/HTM/ASUNTOS 05/10 enero revision.doc"">"& "VER" & "</A></TD></TR>"

else
'Este trozo ni caso, todavia no esta depurado pero no influye

SearchTerm2=Server.htmlencode(SearchTerm2)
if instr(ct2,SearchTerm2)>0 then

if instr(ct,"</title>")>0 then
longitud=instr(ct,"</title>")
longitud=longitud -1
ct=left(ct,longitud)
longitud2=len(ct)
longitud=instr(ct,"<title>")
longitud=longitud2 -longitud -6
ct=right(ct,longitud)
else
if instr(ct,"</TITLE>")>0 then
longitud=instr(ct,"</TITLE>")
longitud=longitud -1
ct=left(ct,longitud)
longitud2=len(ct)
longitud=instr(ct,"<TITLE>")
longitud=longitud2 -longitud -6
ct=right(ct,longitud)
end if
end if


'SearchResponse= SearchResponse +"<TR><TD>"+ ct + "</TD><TD ALIGN=CENTER VALIGN=MIDDLE>" + " <A HREF="+FolderName + "/" + Wfile +"> VER </A></TD></TR>"
longitud=0
ct=""

end if
end if
end if

Next

Response.Write ("<HTML><HEAD><TITLE>RESULTADOS</TITLE></HEAD><BODY BGCOLOR=FFFFFF><CENTER>")

Response.Write ("<TABLE BORDER=0 WIDTH=550><TR><TD BGCOLOR=C0C0C0><FONT SIZE=5><B>Ficheros disponibles</B></FONT></TD></TR></TABLE>")

Response.Write ("<TABLE BORDER=0 WIDTH=550>")
if SearchResponse<>"" then
Response.Write SearchResponse
else
Response.Write ("<TR><TD>El Termino Especificado o frase, no ha producido ningún resultado</TD></TR>")
end if
Response.Write ("</TABLE>")

Response.Write ("<TABLE BORDER=0 WIDTH=550><TR><TD BGCOLOR=C0C0C0 ALIGN=RIGHT><FONT SIZE=1></FONT></TD></TR></TABLE>")

Response.Write ("</CENTER></BODY></HTML>")

End Sub



%></body></html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.