Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95

    [JAVA] Spedire file via http

    Ciao

    sto facendo un programmino per lo scambio di file binary(.zip o .exe o ecc) e ascii
    via http usando la classe URLConnection. Riesco a leggere da ftproot e salvare il file su c:\. Non riesco pero' a fare l'incontrario cioè a traferire un file, in c:\, nella cartella ftproot sotto webapps di Tomcat che uso come server http. ecco il codice:

    public void send_file(String filename){
    try{

    URL _url = new URL(address + ":8080/ftproot/" + filename);
    //apre la conessione al server che ha _url come URL
    URLConnection connector = _url.openConnection();
    connector.setDoOutput(true);

    // output stream di byte
    OutputStream os = connector.getOutputStream();
    //input stream di byte
    FileInputStream f = new FileInputStream(new File("c://" +
    filename));


    int byte_read;
    while((byte_read = f.read())!=-1){
    if (DEBUG)System.out.println((char)byte_read);
    os.write(byte_read);
    }
    f.close();
    os.flush();
    os.close();
    }catch(Exception e){System.out.println(e.toString());}

    }

    Perchè non funziona???
    Ho provto anche a coipiare 512 byte per volta ma non funziona
    Grazie!!
    Roby

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; hai provato ad usare la classe HttpUrlConnection? Potrebbe essere necessaria quest'ultima per fare ciò che vuoi... ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95
    Ciao
    Non mi sembra che httpUrlConnection vada bene, dalla doc mi sembra che gestisce solo i messaggi http di risposta.. :master:
    Qualcun'altro ha qualche idea please?

    grazie

    Roby

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95
    Scusate per caso devo crearmi una servlet lato server e ridefinire il metodo doGet? Qualcuno ha un esempio?
    grazie
    Roby

  5. #5
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; ma non funziona perchè ti da qualche errore o che fa?
    Io mi ricordo che un paio d'anni fa dovetti fare il trasferimento di file da un pc all'altro tramite https e utilizzando le socket dovetti implementare una interfaccia che mi verificasse l'indirizzo di provenienza, ma oltre a questo non feci null'altro di particolare.
    A te che succede, che ti tipo di errore da?
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95
    Non mi da errore infatti. Mi entra nel ciclo ed esegue le operazioni pero' quando guardo nella cartella su server il file non cè.

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Non vorrei fosse qualche violazione di policy, nel snso che non hai i grant necessari per creare sul server dei file. Hai tutti i grant necessari?
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95
    Ciao
    Mi si connette al server senza darmi errore quindi non penso. quando ho installato tomcat ho messo la password per entrare come admin ma quando carico una pagina non mi chiede alcuna password. Solo per la pagina di gestione che ha tomcat.in quanto hai grant in Tomcat come faccio avederli?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95

    Risolto

    Grazie lostesso ho risolto creandomi una servlet che scrive su file l'input stream contenente lo stream di dati del file. Ho modificato il path nella urlConnection del metodo sopra descritto, con il path per l'esecuzione della Servlet. In alternativa andava bene costruirmi il server utilizzando la classe ServerSocket ma è risultato più veloce l'uso della Servlet ridefinendo al suo interno il metodo doGet(HttpServletRequest req, HttpServletResponse resp)
    Ciao

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 © 2026 vBulletin Solutions, Inc. All rights reserved.