Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Ftp

  1. #1
    Utente di HTML.it L'avatar di viler
    Registrato dal
    Jul 2008
    Messaggi
    32

    Ftp

    ciao a tutti!

    mi sto cimentando nello sviluppo di un semi-client ftp usando la libreria edtFTPj.

    mi servono soltanto un paio di operazioni da effettuare (download e upload) senza nemmeno troppi controlli ed il tutto sembra filare abbastanza liscio.

    l'unico problema e' il seguente:

    utilizzando l'applicazione in locale (con tomcat che gira sulla mia macchina), i files vengono scaricati tranquillamente in una directory di default che ho settato sul file di configurazione dell'intera applicazione.

    quando pero', l'applicazione viene utilizzata in remoto (e' un'applicazione web, fondamentalmente una miriade di jsp e servlets), i files continuano ad essere scaricati nella MIA macchina, nella solita cartella di default, mentre io avrei bisogno che i suddetti files vengano scaricati nella macchina dell'utente che fa la richiesta.

    Come posso reinidirizzare questa operazione? di modo che questa directory di default venga creata nelle differenti macchine di chi si connette al "sito" ?

    grazie infinite!!!

    lorenzo

  2. #2
    mi sa che fai un po' di confusione su cosa è client e server nel tuo caso.

    Una pagina jsp viene eseguita SEMPRE dove sta il tomcat. Quindi viene eseguita sul server. Se qui usi un client ftp e salvi sul file system, è ovvio che venga usato il file system del server. E non hai modo di accedere al file system del client!!

    Il client http (ovvero il browser per intenderci) legge SOLO il contenuto generato dalla pagina stessa. E' qui che tu devi mandare il contenuto del file di cui vuoi fare il download. In pratica il server deve leggere il contenuto del file e "spararlo" come se fosse lui il contenuto html, impostando opportunamente il mime type. Ecco, per esempio, come impostare il mime type per un file Excel e forzare il donwload usando un nome specifico:

    codice:
    <%
    response.setContentType("application/vnd.ms-excel"); 
    response.setHeader("Content-disposition","attachment;filename=statistiche.xls");
    %>
    Da come descrivi il tutto sembra che la tua jsp (o servlet che sia) ora invii un output html e non il contenuto del file...
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Utente di HTML.it L'avatar di viler
    Registrato dal
    Jul 2008
    Messaggi
    32
    porca miseria che confusione.....

    non so dove mettere le mani T_T


    non credo sia un'operazione da poco tempo comunque, la faccenda sembra piu' complicata del previsto e non so se ho le conoscenze per mettere a posto questa cosa :X

    grazie della risposta comunque!!! se per caso hai ulteriori consigli, oppure se vuoi piu' informazioni riguardo la mia applicazione, non esitare a farti sentire!

    sono semi disperato ehehehe

    grazie ancora!!

    lorenzo

  4. #4
    non ti volevo spaventare, anche perché l'operazione è molto semplice :-)

    Se accedi a questa pagina http://ivenuti.altervista.org/articoli2005.htm puoi scaricare il file allegato ad un mio articolo ("Una URL, tanti documenti... personalizzati!") in cui c'è una servlet che legge dei file presenti sul proprio file system (quindi sul server) e li restituisce sul client.

    Ma al di la' di questo la logica è semplice: se tu vuoi leggere qualcosa sul server e spedirlo al client, devi leggerlo come leggeresti un qualsiasi file binario. I byte letti li mandi sulla response. L'unico problema è che di default la response setta il tipo del contenuto come html. Non è questo il tuo caso. Dovresti settargli il tipo o come binario o con il tipo proprio del file (esistono delle tabelle che associano, per ogni tipo di file, la stringa da settare; vedi, per esempio, http://en.wikipedia.org/wiki/Internet_media_type )

    ciao
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  5. #5
    Utente di HTML.it L'avatar di viler
    Registrato dal
    Jul 2008
    Messaggi
    32
    ok, ti faccio vedere come e' strutturata l'applicazione, perche' con sta response non c'ho capito nulla hehe.

    sono abbastanza neofita nel settore, ho cominciato diciamo da un mesetto scarso quindi abbi un po' di pazienza.

    se ti ho stufato lasciami pure perdere, non ti preoccupare

    allora:

    abbiamo una classe FtpManager, dove viene importata la libreria suddetta (edtFTPj)

    il costruttore setta tutti i parametri della connessione ftp, prendendoli da un file di configurazione

    tra i membri privati di questa classe c'e' pure una stringa TempPath, dove viene descritto il path temporaneo in cui vengono scaricati i files (in questo caso sono sempre e solo filmati).

    tra i metodi di questa classe ci sono quelli basilari che mi servono (connect, disconnect, downloadFile, uploadFile, getConnectionStatus e getTempLocalPath).

    L'istanziamento dell'oggetto FtpManager, che per comodita' ho chiamato client, avviene all'interno di una JSP.

    La funzione di questa JSP e' quella di visualizzare un filmato in remoto e, siccome questi filmati si trovano su un server FTP, la logica che ho pensato sarebbe questa:

    Spingo il bottone "visualizza", parte il client ftp, si connette, prende il filmato in questione, lo scarica nell'hard disk, il client si sconnette, il filmato viene visualizzato (non tramite un'applicazione locale, tipo windows media player, ma tramite browser, utilizzando i vari <object> ed <embed>).

    chiaramente, come dici tu, il path temporaneo che compare sul file di configurazione e' senz'altro riferito al server, quindi e' ovvio (non ci avevo pensato prima che me lo dicessi :P) che i files verranno sempre scaricati in quel path che e' relativo al server.

    Dici che devo fare delle modifiche gigantoscopiche? ho una gran paura di aver perso taaaanto tempo a scrivere tutto quel codice e scoprire poi che ho fatto uno di quei errori di logica di base e devo ricominciare tutto da capo :X

    grazie ancora per la pazienza, sei molto gentile.

    lorenzo

  6. #6
    Tutto ok fino a qui:

    il filmato viene visualizzato (non tramite un'applicazione locale, tipo windows media player, ma tramite browser, utilizzando i vari <object> ed <embed> ).
    questo lo puoi ancora fare, ma non come pensavi tu mettendoci una url del file system su object o embed. Essa deve essere una URL a cui risponde una servlet sul server. Questa servlet deve andare a leggersi il file sul file system del server (è il suo file system locale!) e scriverlo sul proprio response (il file vviamente è quello che hai scaricato tu in precedenza via ftp!) . request e response sono i due oggetti principali di servlet e jsp; prenditi un buon manuale e studiateli ;-)

    Tieni conto che la servlet la trovi già pronta (a parte alcune lievi modifiche!): è proprio quello che fa la servlet di esempio che ti ho detto di scaricare!
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

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.