Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    6

    realizzare applet per fare ftp

    Salve, devo realizzare una applet che effettua l'upload via ftp di un file, il problema che ho è che se mando in esecuzione il tutto dall'ambiente di sviluppo (Netbeans) , mi funziona, ma se provo a mettere il codice on-line, in una pagina html non funziona niente, tra i problemi di cui mi sono accorto è che non riesce a caricare e trovare le classi delle librerie esterne, vi prego potreste aiutarmi, di applet veramente non ne capisco quasi niente e sto arrivando all'esaurimento, di seguito vi riporto il codice dell'applet.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    6

    segue...il codice1

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import it.sauronsoftware.ftp4j.FTPClient;
    import it.sauronsoftware.ftp4j.FTPFile;
    import it.sauronsoftware.ftp4j.FTPDataTransferListener;
    import java.io.File;
    import java.util.Date;
    
    public class applet2 extends JApplet {
    
        private JTextField testo;
        private int numeroStampato;
        private boolean animazioneAttiva;
        javax.swing.Timer tempor;    
        
        private JTextField testoFile;
        private JTextField testoDim;
    
        private JTextField testoOperazione; 
        private JTextField testoRisultato;
        private JButton bottoneStopGo;
        private JProgressBar bar;
        private int totale = 0;
        private ftp ftp = null;
        
        private provaTimer pt;
    
        //**************************
         public class provaTimer  
         {  
           private  java.util.Timer timer;
             
             public provaTimer ()   
             {  
                 timer = new java.util.Timer(); 
                 //timer.schedule(new RemindTask (),seconds*1000 ); 
                 timer.schedule(new RemindTask (), 1000);
    
    
             }
    
             public void stopTimer()
             {
                ftp.chiudi();
                timer.cancel();
             }
    
             class RemindTask extends TimerTask  
             {  
                 public void run()   
                 {  
                    if (ftp != null)
                      ftp.apri();
    
                 }  
             }  
    
          } 
        //**************************
        
    
      @Override
        public void init() 
        {
         
          ftp = new ftp();
          String nomeFile = "nomeFile.zip";
          String dimensione = "254";
          String operazione = "clicca su invia...";
          String result = "...";
          
          String param = getParameter("pathfile");
          if (param == null)
            nomeFile = "nomeFile.zip";
          else
            nomeFile = param;
          
          testoFile = new JTextField(25);
          testoFile.setEditable(false);
          testoFile.setBackground(Color.WHITE);
          testoFile.setForeground(Color.RED);
          testoFile.setText(nomeFile);
          
          testoDim = new JTextField(11);
          testoDim.setEditable(false);
          testoDim.setBackground(Color.WHITE);
          testoDim.setForeground(Color.RED);
          testoDim.setText(dimensione);
          
          bar = new JProgressBar(0,100);
          bar.setValue(0);
          bar.setStringPainted(true);
    
          testoOperazione = new JTextField(20);
          testoOperazione.setEditable(false);
          testoOperazione.setBackground(Color.WHITE);
          testoOperazione.setForeground(Color.BLUE);
          testoOperazione.setText(operazione);
          
          testoRisultato = new JTextField(10);
          testoRisultato.setEditable(false);
          testoRisultato.setBackground(Color.WHITE);
          testoRisultato.setForeground(Color.BLUE);
          testoRisultato.setText(result);
          
          bottoneStopGo = new JButton("invia");
          bottoneStopGo.addActionListener(new RicevitoreBottone());
          
          testo = new JTextField(4);
          testo.setText("0");
          numeroStampato = 1;
          
          totale = Integer.parseInt(dimensione);
          System.out.println(totale);
          animazioneAttiva = false;
          tempor = new javax.swing.Timer(1000, new RicevitoreEventi());
          
          // Definisco il layout dell'applet: 
          Container pannelloApplet = getContentPane();
          pannelloApplet.setLayout(new BorderLayout());
    
          // inseriremo i  bottoni non direttamente nell'applet, 
          // ma in un pannello che verra' inserito nel centro dell'
          // applet. Costruiamo il pannello: 
    
          JPanel pannelloTesti = new JPanel();
          pannelloTesti.setLayout(new GridLayout(1, 2));
          // definisco il colore di fondo del pannelloBottoni:
          pannelloTesti.setBackground(Color.GRAY);
          pannelloTesti.add(testoFile);
          pannelloTesti.add(testoDim);
          // inserisco il pannelloTesti nel nord dell'applet:
          pannelloApplet.add(pannelloTesti, BorderLayout.NORTH);
          
          JPanel pannelloSud = new JPanel();
          pannelloSud.setLayout(new GridLayout(1, 1));
          // definisco il colore di fondo del pannelloBottoni:
          pannelloSud.setBackground(Color.GRAY);
          pannelloSud.add(bar);
          pannelloApplet.add(pannelloSud, BorderLayout.SOUTH);
          
          JPanel pannelloCentro = new JPanel();
          pannelloCentro.setLayout(new GridLayout(5, 1));
          // definisco il colore di fondo del pannelloBottoni:
          pannelloCentro.setBackground(Color.GRAY);
          pannelloCentro.add(testoOperazione);
          pannelloCentro.add(testoRisultato);
          pannelloCentro.add(bottoneStopGo);
          pannelloCentro.add(testo);
       
          // inserisco il pannelloTesti nel centro dell'applet:
          pannelloApplet.add(pannelloCentro, BorderLayout.CENTER);
          
    
    
        }
    
        class RicevitoreEventi implements ActionListener {
    	public void actionPerformed(ActionEvent e) {
    	    testo.setText("" + numeroStampato);
                numeroStampato++;
    	}
        }
    
        class RicevitoreBottone implements ActionListener {
    	public void actionPerformed(ActionEvent e) 
            {
    	    if (animazioneAttiva) 
                {                       // quando clicco su annulla
    		tempor.stop();
                    //ftp.chiudi();
                    pt.stopTimer();
                    numeroStampato=1;
                    animazioneAttiva = false;
    		bottoneStopGo.setText("Invia");
                    testoRisultato.setText("Operazione Annullata");
    	    }
    	    else {                  // quando clicco su invia
    		tempor.start();
                    animazioneAttiva = true;
    		bottoneStopGo.setText("Annulla");
                    //ftp.apri();
                    pt  = new provaTimer();
                    testoRisultato.setText("Trasferimento in corso");
    	    }
    	}
    
        }
      @Override
        public void stop() {
    	tempor.stop();
            //ftp.chiudi();
            pt.stopTimer();
            numeroStampato = 1;
    	animazioneAttiva = false;
    	bottoneStopGo.setText("Invia");
            testoRisultato.setText("Operazione Terminata");
        }
      
        public class Mail  {
    
          private String host = ..... e tutte le info per invio delle mail
    
          public Mail (String cella, String descr, String data_ita, int vuota) 
          {
            try {
              //initialize the StringBuffer object within the try/catch loop
              
    
              //Get system properties
              
              //Setup mail server
             
              //Get session
              
              //Define message
             
              //Set the from address
           
              //set more destinations
              
    
              //Oggetto della mail
              msg.setSubject(cella+ " UPLOAD");
             if(vuota==1){
              //Il corpo della mail
              sb.append(cella+" UPLOAD "+" file "+descr+" in data "+data_ita);
              }
             if(vuota==0){  
              //Il corpo della mail
              sb.append(cella+" UPLOAD "+" file "+descr+" in data "+data_ita);
              }    
              msg.setText(sb.toString( ));  
              //Per inviare il messaggio
              Transport tr = session.getTransport("smtp");
              tr.connect(host, user, pass);
              msg.saveChanges(); // don't forget this
              tr.sendMessage(msg, msg.getAllRecipients());
              tr.close();
    
            }
            catch (MessagingException e) {
              System.out.println(e);
            }
          } 
    
        }
    codice:
          public class MyTransferListener2 implements FTPDataTransferListener {
    
          public void started() {
            System.out.println("Trasferimento avviato");   // Trasferimento avviato
          }
    
          public void transferred(int length) {
             System.out.println(length);
                  // Altri length byte sono stati trasferiti da quando questo metodo
                  // è stato richiamanto l'ultima volta
          }
    
          public void completed() {
            System.out.println("Trasferimento completato"); // Trasferimento completato
          }
    
          public void aborted() {
            System.out.println("Trasferimento annullato"); // Trasferimento annullato
          }
    
          public void failed() {
            System.out.println("Trasferimento fallito"); // Trasferimento fallito
          }
    
    
        }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    6

    segue il codice 2

    codice:
    public class ftp {
    
        private FTPClient client = new FTPClient();
    
        public void apri() {
    
          Date d = new Date();
          String data = "";
          long time = d.getTime();
          System.out.println(time);
          //String nomeFile = "impara.pdf";
          String nomeFile = "v.jpeg";
          String pathLocale = "............";
          try 
          {
    
            client.connect("........");
            client.login("............");
    
            client.setPassive(true);
            client.setType(FTPClient.TYPE_AUTO);
            //client.changeDirectory(newPath);
    
            String dir = client.currentDirectory();
            System.out.println(dir);
    
            client.changeDirectory("/images/mia/");
            dir = client.currentDirectory();
            System.out.println(dir);
    
            File file = new File(pathLocale+nomeFile);
    
            System.out.println(file.length());
    
            boolean presente = false;
            FTPFile[] list = client.list();
            System.out.println(list.length);
            int k =-1;
            for ( int i=0 ; i < list.length; i++)
            {
              System.out.println(list[i].getName()+" "+list[i].getSize()+" "+list[i].getType());
              if (nomeFile.equals(list[i].getName()))
              {
                presente = true;
                k = i;
              }
            }
    
            if (presente)
            {
              if( file.length() == list[k].getSize())
              {
                System.out.println("presente con le stesse dimensioni");
                System.out.println("sposto");
                client.rename(list[k].getName(), "/images/miaFull/"+time+"_"+list[k].getName());
                Date d2 = new Date();
                data = d2.toString();
                Mail jv2 = new Mail("Fine",nomeFile,data,0);
                System.out.println("spostato");
                
                //------------------------------------------------------------------
                testoRisultato.setText("Operazione Completata");
                tempor.stop();
                //ftp.chiudi();
                pt.stopTimer();
                numeroStampato = 1;
                animazioneAttiva = false;
                bottoneStopGo.setText("Invia");
    
              }
              else
              {
                Date d3 = new Date();
                data = d3.toString();
                Mail jv = new Mail("Inizio",nomeFile,data,0);
                System.out.println("presente con dimensioni diverse");
                MyTransferListener2 lt =new MyTransferListener2();
                client.upload(file,list[k].getSize() ,lt);
    
              } 
    
            }
            else
            {
              Date d4 = new Date();
              data = d4.toString();
              Mail jv = new Mail("Inizio",nomeFile,data,0);
              MyTransferListener2 l =new MyTransferListener2();
              System.out.println("non presente");
              client.upload(file,l);
    
              //***************
                list = client.list();
                System.out.println(list.length);
                int k2 =-1;
                presente = false;
                for ( int i=0 ; i < list.length; i++)
                {
                  System.out.println(list[i].getName()+" "+list[i].getSize()+" "+list[i].getType());
                  if (nomeFile.equals(list[i].getName()))
                  {
                    presente = true;
                    k2 = i;
                  }
                }
                if (presente)
                {
                  if( file.length() == list[k2].getSize())
                    {
                      System.out.println("sposto");
                      client.rename(list[k2].getName(), "/images/miaFull/"+time+"_"+list[k2].getName());
                      Date d5 = new Date();
                      data = d5.toString();
                      Mail jv3 = new Mail("Fine",nomeFile,data,0);
                      System.out.println("spostato");
                      
                      //-----------------------------------------------------------
                      testoRisultato.setText("Operazione Completata");
                      tempor.stop();
                      //ftp.chiudi();
                      pt.stopTimer();
                      numeroStampato = 1;
                      animazioneAttiva = false;
                      bottoneStopGo.setText("Invia");
                    }
                }
                //**********************
    
            }
    
            client.disconnect(true);
    
          } 
          catch (Exception ex) 
            {
               System.out.println(ex.toString());
               if ("it.sauronsoftware.ftp4j.FTPDataTransferException: I/O error in data transfer".equals(ex.toString()))
                 {
                    try 
                    {
                      System.out.println("ciao");
                      FTPFile[] lista = client.list();
                      File file2 = new File(pathLocale+nomeFile);
                      boolean presente2 = false;
                      System.out.println(lista.length);
                      int kl =-1;
                      for ( int i=0 ; i < lista.length; i++)
                      {
                        System.out.println(lista[i].getName()+" "+lista[i].getSize()+" "+lista[i].getType());
                        if (nomeFile.equals(lista[i].getName()))
                        {
                          presente2 = true;
                          kl = i;
                        }
                      }
                      if (presente2)
                      {
                        if( file2.length() == lista[kl].getSize())
                        {
                          System.out.println("presente con le stesse dimensioni--- 2");
                          System.out.println("sposto---2");
                          client.rename(lista[kl].getName(), "/images/miaFull/"+time+"_"+lista[kl].getName());
                          Date d6 = new Date();
                          data = d6.toString();
                          Mail jv4 = new Mail("Fine",nomeFile,data,0);
                          System.out.println("spostato2");
                          //-----------------------------------------------------------
                          testoRisultato.setText("Operazione Completata");
                          tempor.stop();
                          //ftp.chiudi();
                          pt.stopTimer();
                          numeroStampato = 1;
                          animazioneAttiva = false;
                          bottoneStopGo.setText("Invia");
                        }
                      }
                      client.disconnect(true);
    
                    } 
                    catch (Exception ex1) 
                    {
                      System.out.println(ex1.toString());
                    } 
                 }
            }
    
        }
    
        public void chiudi()
        {
            try {
              if (client != null) {
                client.disconnect(true);
              }
            } catch (Exception ex) {
              System.out.println(ex.toString());
            } 
        }
    
    
      }
      
    
    }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: realizzare applet per fare ftp

    Originariamente inviato da sag15
    ma se provo a mettere il codice on-line, in una pagina html non funziona niente
    Le applet, se non sono "firmate" digitalmente o se comunque non le si danno i dovuti permessi, hanno delle pesanti restrizioni. Una: possono aprire connessioni solo verso l'host da cui sono state scaricate.

    Originariamente inviato da sag15
    tra i problemi di cui mi sono accorto è che non riesce a caricare e trovare le classi delle librerie esterne
    Se nella pagina web hai usato il tag <applet> basta che usi l'attributo ARCHIVE per indicare i jar necessari. Vedi documentazione: The APPLET Tag
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    6
    io apro la connessione ftp verso lo stesso server dove risiede la applet, il problema è che non capisco come scrivere l'html per caricare l'applet, se la provo con appletviewer mi dice che non trova le classi e le librerie esterne di cui ho fatto l'import, quale deve il codice html e la struttura dei jar per far funzionare l'applet?Non capisco proprio...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Regolamento, punto numero 6:

    Formattazione del codice sorgente.
    Quando incollate una porzione di codice all'interno di un messaggio, utilizzate l'apposito tag
    [CODE]
    codice
    [/CODE]
    che può essere inserito automaticamente premendo il pulsante CODE: questo renderà il codice leggibile e facilmente comprensibile a tutti, agevolando gli utenti che desiderano aiutarvi.



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    6

    scusatemi per la mancanza

    scusatemi per la mancanza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.