Download file tramite applet

cancel
Showing results for 
Search instead for 
Did you mean: 
piunreks
Member II

Download file tramite applet

Buongiorno a tutti,
ho realizzato un'applet che viene richiamata da un tasto in Alfresco, son riuscito a passare da alfresco all'applet sia l'id (tramite actionContext.id) del documento che che il downloadUrl (actionContext.downloadUrl).
Il mio problema è che a questo punto non so come devo fare per scaricare il file in questione sul pc locale…

ho provato così ma non funziona (la variabile downloadUrl è quella che mi viene passata da alfresco):

        String urlText= "http://'+ip +":"+port+"/alfresco"+ downloadUrl;
        URL url = new URL(urlText);
        fileName = urlText.substring(urlText.lastIndexOf("/")+1,urlText.length());
        URLConnection con = url.openConnection();
        BufferedInputStream in = new BufferedInputStream(con.getInputStream());
        File outFolder = new File("C:/AlfrescoTmp/");
        outFolder.mkdir();
        FileOutputStream out = new FileOutputStream("C:/AlfrescoTmp/" + fileName);

        int i = 0;
        byte[] bytesIn = new byte[1024];
        while ((i = in.read(bytesIn)) >= 0) {
            out.write(bytesIn, 0, i);
        }
        out.flush();
        out.close();
        in.close();

Non ho nessun errore ma mi scarica tutt'altro rispetto al file indicato.

Qualcuno saprebbe indicarmi la strada?

Grazie a coloro che vorranno spendere un pò di tempo per aiutarmi.

Nicola.
10 Replies
alarocca_5413
Member II

Re: Download file tramite applet

Assicurati che al downloadUrl sia appesso il ticket altrimenti l'applet non riusciarà ad accedere al repository.

L'applet l'hai integrata in Alfresco Explorer o Share?
mturatti
Member II

Re: Download file tramite applet

Spesso esistono problemi specifici di una singola versione, piattaforma o configurazione. In generale pregherei tutti di scrivere sempre almeno di che versione di Alfresco si tratta e su che sistema (JVM, O.S., database, etc…). Se la domanda è relativa alla UI, sapere se stiamo parlando di Alfresco Explorer piuttosto che Share non è una differenza da poco. Nessuno qui fa l'indovino di mestiere  Smiley Wink

Grazie!
piunreks
Member II

Re: Download file tramite applet

Innanzitutto grazie per avermi risposto, secondariamente mi scuso per le mie imprecisioni ma sono clamorosamente alle prime armi…
Sto usando Alfresco 3.2
Cerco di spiegare meglio quello che ho fatto:
modificando il web-client-config-custom.xml sono riuscito ad aggiungere un bottone accanto ai vari download,edit,delete relativi al documento.
Alla pressione di questo tasto viene chiamata una mia jsp, che contiene solo ed esclusivamente l'applet che ho fatto, passandogli come parametri l'id del documento e il downloadUrl.
L'applet ha queste 2 informazioni e vorrei fare il download del file.
Ho notato che il codice postato nel mio primo messaggio mi scarica invece che il file desiderato la login.jsp ?!?!?!!?!?!?

Mi potresti dettagliare meglio il discorso del ticket?

Grazie mille e scusatemi ancora per le imprecisioni! Migliorerò!
mturatti
Member II

Re: Download file tramite applet

Ciao. Non voglio certo "cazziare" nessuno, solo dare delle linea guida per ottenere risposte precise e puntuali.

Ti faccio una contro-domanda: ma esattamente a cosa ti serve usare proprio una applet per fare il download di un file? Non potesti semplicemente usare il browser? Potresti, ad esempio, deployare una paginetta Freemarker in Alfresco che pubblica dinamicamente il link al documento da scaricare, oppure aggiungi un bottone che via Javascript fa il download dalla URL che ti interessa. Se spieghi meglio il tuo obiettivo finale e cosa vuoi ottenere magari qui qualcuno può darti idee migliori della mia, forse sono io a non aver capito esattamente.
http://wiki.alfresco.com/wiki/FreeMarker_Template_Cookbook
http://wiki.alfresco.com/wiki/Web_Scripts_Examples
http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook
piunreks
Member II

Re: Download file tramite applet

Ciao,
la scelta della applet dipende dal fatto che subito dopo il download devo lanciare un eseguibile sul pc locale e l'unica possibilità che ho trovato è un'applet firmata…
Quello che devo realizzare è: scaricare il file sul pc locale, lanciare un'eseguibile sempre sul pc locale che elabora il file, quando ha finito fare l'upload del file elaborato in alfresco.

Ripeto, fare un'applet è l'unica soluzione che mi è venuta in mente, tra l'altro mi sarebbe piaciuto "incastonare" l'applet nelle pagine alfresco ma essendo superacerbo ho trovato più comodo fare una chiamata ad una jsp passando i parametri del file, Applet, passaggio parametri e lanciare un'eseguibile sono cose che son già riuscito a fare, al momento mi mancano solo download e upload… per il momento mi son focalizzato sul download…

Grazie per l'interessamento!
alarocca_5413
Member II

Re: Download file tramite applet

L'applet, per poter accedere al contenuto, deve autenticarsi. Il modo più semplice per farlo è appendere all'url il ticket di una sessione attiva di Alfresco.

Ad esempio:
http://192.168.1.10:8080/alfresco/d/d/workspace/SpacesStore/048441fe-e391-4d32-9027-44bcc3fda8a3/Hel...

Alcuni link utili:
http://wiki.alfresco.com/wiki/Security_and_Authentication
http://dev.alfresco.com/resource/docs/java/repository/org/alfresco/service/cmr/security/Authenticati...
piunreks
Member II

Re: Download file tramite applet

Perfetto!
Dovrei esser riuscito a scaricare il file, era proprio il ticket la chiave del problema, tra l'altro ho fatto prima un tentativo con l' "alf_ticket" ma non funzionava mentre utilizzando "ticket" funziona anche se non ho ben capito la differenza tra i due.
Grazie mille per il supporto e complimenti per la competenza e la precisione… Non mancherò di approfittare ancora di voi per quanto riguarda l'upload visto che dubito che mi funzionerà al primo colpo…

Grazie ancora, chiedo inoltre se, nel caso avessi domande riguardo l'upload conviene continuare questo 3d (visto che è la stessa applicazione) o aprirne un'altro (visto che non sarebbe coerente con il titolo)?

Buana giornata!

Nicola.
alarocca_5413
Member II

Re: Download file tramite applet

Felice di esserti stato d'aiuto. Tuttavia concordo con Maurizio. Se avessi aggiunto qual'è l'obiettivo dell'applet, probabilmente qualcuno avrebbe potuto darti opzioni diverse, conferme, alternative, ecc

Ad ogni modo, integrare un'applet in Alfresco Explorer non è difficilissimo. Io l'ho fatto per aggiungere, attraverso una action, la funzione di firma digitale dei PDF.

Nella figura seguente, l'immagine della smartcard ed il pulsante "Firma" sono parte dell'applet.

[img]http://i53.tinypic.com/idgbgy.png[/img]
piunreks
Member II

Re: Download file tramite applet

Esattamente quello che mi sarebbe piaciuto fare… per il momento cercherò di parla funzionare da una mia jsp che mi sembra più semplice, poi una volta che funziona proverò ad integrarlo… sapresti darmi un paio di dritte giusto per imboccare la strada giusta?

Credo che la mia situazione sia molto simile alla tua, hai presente quei programmi che usano i fotografi per sovrapporre alle loro foto la scritta con il nome dello studio fotografico per evitare che uno vada con la foto digitale a stamparla da un'altro fotografo??? La mia applet dovrà far questo, scaricare l'immagine da alfresco, lanciare il programma che fa questa cosa (accetta in ingresso i parametri "FilePartenza" e "FileArrivo") e fare l'upload del file arrivo (che sarà quello "marchiato")….
Al momento col download ci siamo,  col programma anche… manca l'upload…

Grazie delle dritte,
corro ad aprire un'altro 3d sull'uppload  :?