Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    errore nell'upload dei file

    ragazzi ho fatto il seguente codice senza nessun errore:

    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /*
     * NumberAdditionUI.java
     *
     * Created on 29-gen-2009, 16.39.39
     */
    
    package my.numeraddition;
    import javax.swing.*;
    import sun.net.ftp.*;
    import sun.net.TelnetOutputStream;
    import java.io.File;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.FileInputStream;
    
    
    
    /**
     *
     * @author corradocacciapuoti
     */
    public class NumberAdditionUI extends javax.swing.JFrame {
    
    
    
        /** Creates new form NumberAdditionUI */
        public NumberAdditionUI() {
            initComponents();
        }
    
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
    
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
    
            jTabbedPane1 = new javax.swing.JTabbedPane();
            jButton3 = new javax.swing.JButton();
            jTextField1 = new javax.swing.JTextField();
            jButton1 = new javax.swing.JButton();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            jButton3.setText("Scegli il file...");
            jButton3.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton3ActionPerformed(evt);
                }
            });
    
            jTextField1.setEditable(false);
    
            jButton1.setText("Upload");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton1ActionPerformed(evt);
                }
            });
    
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(35, Short.MAX_VALUE)
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 136, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(18, 18, 18)
                    .add(jButton3)
                    .add(49, 49, 49))
                .add(layout.createSequentialGroup()
                    .add(144, 144, 144)
                    .add(jButton1)
                    .addContainerGap(135, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .add(39, 39, 39)
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jButton3)
                        .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(57, 57, 57)
                    .add(jButton1)
                    .addContainerGap(107, Short.MAX_VALUE))
            );
    
            pack();
        }// </editor-fold>                        
    
        private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
           JFileChooser chooser = new JFileChooser ();
           chooser.showOpenDialog(null);
           String file=(chooser.getSelectedFile().getAbsolutePath());
           jTextField1.setText ("" + file);
    
        }                                        
                                      Qua inizia il codice alla pressione del bottone upload
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    String server="scaricomacfile.altervista.org";
            String userName="scaricomacfile";
            String pw="xxxxxxxx";
            String fileName=jTextField1.getText();
            FtpClient ftpClient = new FtpClient();
            try {
    ftpClient.openServer(server);
                ftpClient.login(userName, pw);
                ftpClient.cd("/");
                ftpClient.binary();
                TelnetOutputStream netOut = ftpClient.put(fileName);
                File file = new File(fileName);
    ObjectInputStream fileIn = new ObjectInputStream(new FileInputStream(file));
                byte c[]= new byte[1000];
                int read = 0;
                while ((read = fileIn.read(c)) != -1) {
                    netOut.write(c, 0, read);
     }
                            fileIn.close();
                netOut.close();
                ftpClient.closeServer();
                }
            catch (Exception ex)
    {
    
    }
    
    
    
    
    
        }                                        
    
    
        /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NumberAdditionUI().setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton3;
        private javax.swing.JTabbedPane jTabbedPane1;
        private javax.swing.JTextField jTextField1;
        // End of variables declaration                   
    
    }
    però quando seleziono un file e clicco sul bottone upload e controllo nel sito di altervista non trovo niente.... cosa sbaglio?

  2. #2
    Comincia con lo stampare lo stack trace nel blocco catch. Come fai tu se c'è una eccezione non vedi nulla.
    Al mio segnale... scatenate l'inferno!

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

    Re: errore nell'upload dei file

    Originariamente inviato da Realscorpion
    però quando seleziono un file e clicco sul bottone upload e controllo nel sito di altervista non trovo niente.... cosa sbaglio?
    Non conosco quelle classi per l'FTP, comunque:
    - Hai provato a stampare eventuali eccezioni e/o valori di ritorno (se ne hanno) di quei metodi?
    - Sei sicuro che cd("/") sia corretto?? Nota che quel "/" sta per la "root" del file-system, dove non credo proprio che tu possa scrivere.

    A parte questo, alcune questioni concettuali:
    - ObjectInputStream non ti serve, non stai usando la "serializzazione" degli oggetti. Quindi usa direttamente il FileInputStream.
    - Hai fatto tutta quella gestione del FTP nella classe del tuo frame (già questa non è una buona idea) e oltretutto in risposta ad un evento della interfaccia utente. Questo comporta il fatto che durante le operazioni per l'FTP, la tua interfaccia utente è praticamente "congelata". Esegui le operazioni in un thread separato! E incapsula la gestione del FTP da un'altra parte!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    grazie mille

    adesso nuovo dilemma mi dice:

    Got an IOException: 553-Impossibile aprire quel file: No such file or directory.


    mmm strano il percorso è giusto in quanto stesso il codice un pò più su me lo dice..

  5. #5

    Re: Re: errore nell'upload dei file

    Originariamente inviato da andbin
    Non conosco quelle classi per l'FTP, comunque:
    - Hai provato a stampare eventuali eccezioni e/o valori di ritorno (se ne hanno) di quei metodi?
    - Sei sicuro che cd("/") sia corretto?? Nota che quel "/" sta per la "root" del file-system, dove non credo proprio che tu possa scrivere.

    A parte questo, alcune questioni concettuali:
    - ObjectInputStream non ti serve, non stai usando la "serializzazione" degli oggetti. Quindi usa direttamente il FileInputStream.
    - Hai fatto tutta quella gestione del FTP nella classe del tuo frame (già questa non è una buona idea) e oltretutto in risposta ad un evento della interfaccia utente. Questo comporta il fatto che durante le operazioni per l'FTP, la tua interfaccia utente è praticamente "congelata". Esegui le operazioni in un thread separato! E incapsula la gestione del FTP da un'altra parte!
    non credo che il problema sia questo perchè come detto prima mi da l'errore che non riesce a leggere il file....
    e poi su altervista sta segnata così la directory...:




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

    Re: Re: Re: errore nell'upload dei file

    Originariamente inviato da Realscorpion
    non credo che il problema sia questo
    Sì, in effetti il problema non è la directory. Ho provato con il mio account su Altervista che è parecchio che non uso e in effetti per "/" si intende la "web root" e più "su" ovviamente non si può andare.
    Questa comunque è una restrizione/caratteristica di Altervista, non il caso generale di qualunque hosting! Ho gestito altri hosting in passato e ti posso assicurare che già la posizione/struttura delle directory era parecchio diversa.

    Io fossi in te mi concentrerei su quel ftpClient.put(fileName). E ti dico anche il perché: tu in quel 'filename' hai un path completo sul tuo file-system locale. Il put() non ha nulla a che fare con path locali .... deve solo creare una nuova entry in remoto e fornire l'output stream per poterci scrivere dentro.
    Quindi se ne deduce che passare a put() un path tipo C:\bla\bla\qualcosa.txt non abbia molto senso .... il path completo lo dovrai usare solo con FileInputStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7

    Re: Re: Re: Re: errore nell'upload dei file

    Originariamente inviato da andbin
    Sì, in effetti il problema non è la directory. Ho provato con il mio account su Altervista che è parecchio che non uso e in effetti per "/" si intende la "web root" e più "su" ovviamente non si può andare.
    Questa comunque è una restrizione/caratteristica di Altervista, non il caso generale di qualunque hosting! Ho gestito altri hosting in passato e ti posso assicurare che già la posizione/struttura delle directory era parecchio diversa.

    Io fossi in te mi concentrerei su quel ftpClient.put(fileName). E ti dico anche il perché: tu in quel 'filename' hai un path completo sul tuo file-system locale. Il put() non ha nulla a che fare con path locali .... deve solo creare una nuova entry in remoto e fornire l'output stream per poterci scrivere dentro.
    Quindi se ne deduce che passare a put() un path tipo C:\bla\bla\qualcosa.txt non abbia molto senso .... il path completo lo dovrai usare solo con FileInputStream.
    quindi ho modificato la stringa con questa

    codice:
     TelnetOutputStream netOut = ftpClient.put("provaNetBeans.txt");
    però adesso mi dice Got an IOExpception: invalid stream header

    :S

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

    Re: Re: Re: Re: Re: errore nell'upload dei file

    Originariamente inviato da Realscorpion
    però adesso mi dice Got an IOExpception: invalid stream header
    Non hai tolto ObjectInputStream, vero? toglilo
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    mmm nn ho capito..... devo trasformare questa stringa:

    codice:
    ObjectInputStream fileIn = new ObjectInputStream(new FileInputStream(file));
    in
    codice:
     fileIn = new FileInputStream(file);
    ?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Realscorpion
    mmm nn ho capito..... devo trasformare questa stringa:

    codice:
    ObjectInputStream fileIn = new ObjectInputStream(new FileInputStream(file));
    in
    codice:
     fileIn = new FileInputStream(file);
    ?
    Sì ... non devi usare ObjectInputStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.