Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/08/2012, 04:27
dicuenca77
 
Fecha de Ingreso: agosto-2011
Mensajes: 68
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Ruta completa para un campo FILE

Bueno, parece que lo he conseguido solucionar.
No funciona con una unidad de red Z:\ pero sí con dirección \\maquina\Recurso_compartido
Pongo el código, aunque está hecho un poco rápido y grotesco.

En algún lado que venga bien, hay que inicializar variables. Quizás en un global.asa:

Código ASP:
Ver original
  1. Dim ficheros(100)
  2.  session("ficheros")=ficheros
  3.  session("numficheros")=0
  4.  session("FSOPath")="\\10.160.2.5\Server"
  5.  session("indice")=0
  6.  session("FSOarchivo")=""

Después yo tengo un botón examinar para abrir el explorador de archivos que he hecho:

Código ASP:
Ver original
  1. if session("numficheros")>0 then
  2.   ficheros=session("ficheros")
  3.  End if
  4. %>
  5. <form action="subirfichero2.asp" method="post" name="subirfichero" id="subirfichero">
  6.  
  7.   <input name="button2" type="button" class="botonpeque" id="button2" onclick="MM_openBrWindow('explorador.asp','opener','scrollbars=yes,width=500,height=400')" value="Examinar" />
  8. </form>
  9. <table width="300" border="0" cellspacing="0" cellpadding="0">
  10. <%
  11.  For i=1 to session("numficheros")
  12. %>
  13.   <tr>
  14.     <td class="tablacalendario">
  15.     <%
  16.      if len(ficheros(i))>25 then
  17.       Response.Write("..."&right(ficheros(i),25))
  18.      Else
  19.       Response.Write(ficheros(i))
  20.      End if
  21.    
  22.     %></td>
  23.     <td width="75" class="tablacalendario"><input name="button" type="submit" class="formulariomuycorto" id="button" value="Eliminar" onclick="javascript: document.location.href('elimina.asp?id=<%=i%>');" /></td>
  24.   </tr>
  25. <%
  26.  Next
  27. %>
  28. </table>

Al darle a examinar, se abre un popup con el explorador:

Código ASP:
Ver original
  1. If not session("logged") then
  2.  response.Redirect("index.asp")
  3. End if
  4.  
  5.  
  6. %>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso 8859-1" />
  11. <title>Explorador de Archivos</title>
  12. <link href="agenda.css" rel="stylesheet" type="text/css" />
  13. <style type="text/css">
  14. body,td,th {
  15.     color: #000;
  16. }
  17. body {
  18.     background-color: #FFF;
  19.     margin-left: 5px;
  20.     margin-top: 5px;
  21.     margin-right: 5px;
  22.     margin-bottom: 5px;
  23. }
  24.  
  25. </style>
  26.  
  27.  
  28. </head>
  29.  
  30. <body>
  31. <%
  32.  Dim FSO, raiz, carpeta, archivos
  33.  
  34.  
  35.  if session("indice")>0 and request.Form("seleccionado")<>"" then
  36.   seleccionado=request.Form("seleccionado")
  37.     session("FSOarchivo")=request.Form(seleccionado)
  38.  End if
  39.  
  40.  set FSO = server.createObject("Scripting.FileSystemObject")
  41.  
  42.  
  43. if Request.QueryString("nroot")<>"" then
  44.  session("FSOPath")=Request.QueryString("nroot")
  45. End if
  46.  
  47.  Set raiz = FSO.GetFolder(session("FSOPath"))
  48.  
  49. %>
  50. <form name="archivos" action="#" method="post">
  51. <table width="480" border="0" cellspacing="0" cellpadding="2">
  52.   <tr class="tabladatos">
  53.     <td width="19"><a href="explorador.asp?nroot=<%
  54.    
  55.     if (not raiz.isRootFolder) then
  56.      Response.Write(raiz.parentfolder.path)
  57.     End if
  58.    
  59.     %>"><img src="images/subirnivel.gif" width="18" height="15" border="0" /></a></td>
  60.     <td colspan="3"><%=session("FSOPath")%></td>
  61.   </tr>
  62. <%
  63.  FSO_Buscar_Carpetas(session("FSOPath"))
  64.  FSO_Buscar_Archivos(session("FSOPath"))
  65. %>
  66. </table>
  67.  
  68. <%
  69. Sub FSO_Buscar_Carpetas(nombre_carpeta)
  70.  
  71. 'extraigo la coleccion de carpetas
  72. set coleccionCarpetas = raiz.subFolders
  73.  
  74. for each carpeta in coleccionCarpetas
  75. %>
  76.   <tr class="tabladatos">
  77.     <td width="19"><img src="images/carpeta.gif" width="18" height="19" /></td>
  78.         <td width="10">&nbsp;</td>
  79.     <td><a href="explorador.asp?nroot=<%=carpeta.path%>"><%=carpeta.name%></a></td>
  80.     <td width="75">&nbsp;</td>
  81.   </tr>
  82. <%
  83. next
  84.  
  85. End Sub
  86. %>
  87.  
  88. <%
  89. Sub FSO_Buscar_Archivos(nombre_carpeta)
  90. session("indice")=0
  91.  
  92. 'extraigo la coleccion de carpetas
  93. Set carpeta = FSO.GetFolder(nombre_carpeta)
  94. 'traigo los archivos de la carpeta
  95. Set archivos = carpeta.Files
  96.  
  97. for each nombre_archivo in archivos
  98. tamano=nombre_archivo.size/1024
  99. session("indice")=session("indice")+1
  100. %>
  101.   <tr class="tabladatos">
  102.     <td width="19"><img src="images/archivo.gif" width="18" height="19" /></td>
  103.     <td width="10">
  104.    
  105.   <input name="seleccionado" type="radio" value="<%=session("indice")%>" onclick="javasctript: document.forms.archivos.submit(); devuelve_valor(); window.close();" class="botongrupo" />
  106.   </td>
  107.   <td>
  108.   <input name="<%=session("indice")%>" class="formularioculto" value="<%=nombre_archivo.name%>" readonly="readonly" /></td>
  109.    
  110.     <td width="75" align="right"><%=FormatNumber(tamano,0)%> Kb</td>
  111.   </tr>
  112. <%
  113. next
  114.  
  115. End Sub
  116. %>
  117. </form>
  118.  
  119. </body>
  120. </html>
  121.  
  122. <script language="javascript">
  123.  function devuelve_valor()
  124.  {
  125.      window.opener.location.href('subirfichero2.asp')
  126.  }
  127. </script>

Al seleccionar un archivo, se redirige a la página que recogerá el path completo:

Código ASP:
Ver original
  1. <%
  2.  
  3. If not session("logged") then
  4.  response.Redirect("index.asp")
  5. End if
  6.  
  7.  
  8.  
  9. ficheros=session("ficheros")
  10. session("numficheros")=session("numficheros")+1
  11. session("indice")=0
  12.  
  13.  
  14. temp=session("FSOPath")&"\"&session("FSOarchivo")
  15.  
  16. duplicado=false
  17. for i=1 to session("numficheros")-1
  18.  if temp=ficheros(i) then
  19.   dublicado=true
  20.  End if
  21. Next
  22.  
  23. if duplicado=false then
  24.  ficheros(session("numficheros")) = temp
  25. End if
  26.  
  27. session("ficheros")=ficheros
  28.  
  29. response.Redirect("subirfichero.asp")
  30. %>

Creo que me he complicado bastante, pero funciona.