Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    181

    Ftp commons net

    Ciao ragazzi, è da un pò di tempo che ho creato un FTP con la libreria commons net di apache. Soltanto oggi mi sono accorto di avere un piccolo problema. Con le immagini l'ftp non va. Invia il file specificando di che tipo è, specifica anche le dimensioni, ma quando lo apro mi dice che il formato non è validto oppure il file è corrotto. Qualcuno di voi saprebbe aiutarmi???

    Grazie mille.

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

    Re: Ftp commons net

    Originariamente inviato da Sasuccio87
    Con le immagini l'ftp non va. Invia il file specificando di che tipo è, specifica anche le dimensioni, ma quando lo apro mi dice che il formato non è validto oppure il file è corrotto.
    Puoi mostrare il pezzo di codice riguardante questo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    181
    Yes, il codice è semplice :

    Codice PHP:
            FTPClient ftp = new FTPClient();
            
    ftp.connect("localhost"21);
            
    ftp.login("user","user");

            
    // creo la directory se questa non esiste;
            
    FileInputStream  in = new FileInputStream("C:/img.gif");
            
    ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);
            
    ftp.enterLocalPassiveMode();
            
    ftp.storeFile("img.gif",in);

            
    ftp.disconnect(); 

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    prova con
    codice:
    ftp.setFileType(FTP.BINARY_FILE_TYPE);
    dopo il login e prima di inviare il file
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sasuccio87
    Codice PHP:
            ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE); 
    Credo proprio che sia questa riga il problema! E valia ti ha indicato la soluzione.

    Effettivamente a prima vista può far confondere ma la documentazione javadoc della Commons Net lo descrive direi chiaramente:
    - per setFileTransferMode si usano le costanti xxx_TRANSFER_MODE
    - per setFileType si usano le costanti xxx_FILE_TYPE

    E appunto BINARY_FILE_TYPE si usa con setFileType. Svelato l'arcano
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    181
    Cavoli siete grandi O_O...io ho perso più di una giornata a capire il problema grazie mille...funziona benissimo.

    Non so come farei senza di voi hihihih grazie ancora

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Sasuccio87
    Cavoli siete grandi O_O...io ho perso più di una giornata a capire il problema grazie mille...funziona benissimo.

    Non so come farei senza di voi hihihih grazie ancora
    beh io ho solo fatto una ricerca con google e letto le API (quindi le info ci sono).
    Poi avendo avuto a che fare con queste robe, una mezza idea su cosa cercare ce l'avevo.
    In futuro ricorda che:

    1. modalità di trasferimento, indica come trattare i dati sul canale
    2. tipo di risorsa, indica cosa tu vuoi trasferire.

    Settando la modalità di trasferimento e non il tipo, ti ritrovavi a passare la tua immagine come testo ASCII (quindi si introducono i fine riga per capirci) e a destinazione la ricostruzione non avveniva in modo corretto (ovviamente).
    Poi anche un caso strano, non ti dava eccezione usando questa istruzione:
    codice:
    ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);
    In questo caso mischiavi un po' i concetti.
    In alcuni ambiti si fa anche un controllo sul valore, ma quasi sicuramente quel binary file type è comunque un valore valido per la modalità di trasferimento, quindi non avevi problemi.

    In futuro ti posso consigliare solo di leggere attentamente le API.
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    181
    Grazie della spiegazione ^^ grazie veramente ^^.
    Le API le avevo guardate anche più di una volta...però non avevo capito il problema... Prima di scrivere nel Forum, comunque cerco in tutti i modi di risolvere il problema, cercando su google o sulle API di quella determinata libreria. Questa volta mi ha confuso .

    Grazie davvero a tutti e due ^^

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.