Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/04/2010, 04:07
cslbcn
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Applet para escoger un archivo

Hola.

En JavaScript es imposible obtener la ruta completa y en asp.net por más que lo intente tampoco lo consigo.

Finalmente, después de leerme kilos de manuales en java se puede conseguir de esta manera:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.       <!-- El javascript, una funcion que obtiene el applet usado su id y llama al metodo cambia -->
  3.       <script>
  4.  
  5.             function doAlert(s) {
  6.  
  7.             alert(s);
  8.             }
  9.  
  10.       </script>
  11.    </head>
  12. <body bgcolor="#dddddd">
  13. <applet id="idApplet" code="localfile.class" archive="localfile.jar"  width="600" height="100">
  14. </applet>
  15. </body>
  16. </html>

Código JAVA:
Ver original
  1. import java.applet.*;
  2. import java.awt.*;
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.text.*;
  6. import java.awt.event.*;
  7. import java.io.*;
  8. import java.net.*;
  9.  
  10. public class localfile extends Applet{
  11.  
  12.     TextField txt = new TextField(60);
  13.     Button btn = new Button("Seleccionar documento");
  14.  
  15.     public localfile(){
  16.  
  17.         Panel p = new Panel();
  18.         Font f;
  19.  
  20.         f = new Font("Arial",Font.BOLD,10);
  21.  
  22.         p.setFont(f);
  23.         p.add(btn);
  24.         p.add(txt);
  25.  
  26.         add("North",p);
  27.  
  28.     }
  29.     public boolean action(Event evt, Object arg)
  30.     {
  31.  
  32.         if (arg.equals("Seleccionar documento")) {
  33.  
  34.             Frame parent = new Frame();
  35.             FileDialog fd = new FileDialog(parent, "Selecciona el documento ISO", FileDialog.LOAD);
  36.             fd.show();
  37.             String selectedItem = fd.getFile();
  38.             if (selectedItem == null) {
  39.                 // no file selected
  40.             } else {
  41.                 File ffile = new File( fd.getDirectory() + File.separator + fd.getFile());
  42.                 txt.setText(fd.getDirectory() + File.separator + fd.getFile());
  43.  
  44.                 String msg = txt.getText();
  45.                 try {
  46.                   getAppletContext().showDocument
  47.                     (new URL("javascript:doAlert(\"" + msg +"\")"));
  48.                   }
  49.                 catch (MalformedURLException me) { }
  50.  
  51.             }
  52.  
  53.         } else return false;
  54.         return true;
  55.     }
  56.  
  57. }



El Applet recoje el ruta completa del archivo seleccionado a través del FileDialog y lo devuelve al JS.

Por si a alguien le interesa... este código funciona :)