Come forzare il download di uno stream file IFS

69 views
Skip to first unread message

Giovanni

unread,
Apr 23, 2010, 8:11:26 AM4/23/10
to CGIDEV2 Italia
Quest'oggi mi è stato chiesto come si possa, con CGIDEV2, fare in modo
che un programma CGI, dopo aver ricevuto una data richiesta dal
browser, spedisca al browser uno stream file IFS (un PDF, un XLS, o
qualunque altra cosa) costringendo il browser a presentare un dialog-
box per lo scarico.

Questo compito è già stato risolto da una mia utility (gratuita ed
open source, come tutte) denominata FUPLOAD e documentata alla pagina
http://www.easy400.net/fupload/html/page1.htm .

In particolare, tale funzione viene espletata dal programma FUPLOAD/
FDNLOAD.
Il sorgente, che svela come fare, sta nel file FUPLOAD/QRPGLESRC
ed è visibile alla pagina http://www.easy400.net/easy400sources/fupload/qrpglesrc/fdnload.txt
.

La parte vitale sta nelle header che vengono trasmesse prima del file
(vedi il commento "Write output headers").

Giovanni B. Perotti


--
Subscription settings: http://groups.google.com/group/cgidev2-italia/subscribe?hl=en

ventriglia

unread,
May 6, 2010, 6:37:51 AM5/6/10
to CGIDEV2 Italia
Salve,
utilizzando il pgm FUPLOAD ho notato (sicuramente sbaglio) che alcune
volte (quando c'è l'estensione sul file da importare) il file viene
creato (col nome ad es. c:\clienti\.....) nell'ifs ma non è
utilizzabile....
io ho risolto utilizzando la funzione Qp0lRenameUnlink, ma non ho
capito dove sbaglio..
saluti

On 23 Apr, 14:11, Giovanni <gb_pero...@easy400.net> wrote:
> Quest'oggi mi è stato chiesto come si possa, con CGIDEV2, fare in modo
> che un programma CGI, dopo aver ricevuto una data richiesta dal
> browser, spedisca al browser uno stream file IFS (un PDF, un XLS, o
> qualunque altra cosa) costringendo il browser a presentare un dialog-
> box per lo scarico.
>
> Questo compito è già stato risolto da una mia utility (gratuita ed
> open source, come tutte) denominata FUPLOAD e documentata alla paginahttp://www.easy400.net/fupload/html/page1.htm.
>
> In particolare, tale funzione viene espletata dal programma FUPLOAD/
> FDNLOAD.
> Il sorgente, che svela come fare, sta nel file FUPLOAD/QRPGLESRC
> ed è visibile alla paginahttp://www.easy400.net/easy400sources/fupload/qrpglesrc/fdnload.txt

Giovanni B. Perotti

unread,
May 6, 2010, 7:05:12 AM5/6/10
to cgidev2...@googlegroups.com
Prima di tutto bisogna usare il pgm FUPLOAD2 nella libreria FUPLOAD.
Questo programma � estremamente migliore del precedente (il pgm FUPLOAD).

In secondo luogo, se nel nome del file IFS in /temp comare il nome
dell'unit� pc (es: C:/... ),
questo dipende dal fatto che si sta utilizzando una versione di Internet
Explorer superata dai tempi di Giulio Cesrare.
Io non posso correggere FUPLOAD2, per tener conto di questo caso, perch� il
mio I.E. � aggiornato all'ultimo livello.
Se tuttavia qualcuno si offre di utilzzare il suo I.E. cesariano per fare un
test sul mio sistema,
possiamo organizzare la caccia all'errore.
Chi si volontarizza, per favore scriva al mio indirizzo personale,
gb_pe...@easy400.net .

Giovanni
----- Original Message -----
From: "ventriglia" <antonio.v...@tele2.it>
To: "CGIDEV2 Italia" <cgidev2...@googlegroups.com>
Sent: Thursday, May 06, 2010 12:37 PM
Subject: [CGIDEV2 Italia:10] Re: Come forzare il download di uno stream file
IFS


Salve,
utilizzando il pgm FUPLOAD ho notato (sicuramente sbaglio) che alcune
volte (quando c'� l'estensione sul file da importare) il file viene
creato (col nome ad es. c:\clienti\.....) nell'ifs ma non �
utilizzabile....
io ho risolto utilizzando la funzione Qp0lRenameUnlink, ma non ho
capito dove sbaglio..
saluti

On 23 Apr, 14:11, Giovanni <gb_pero...@easy400.net> wrote:
> Quest'oggi mi � stato chiesto come si possa, con CGIDEV2, fare in modo
> che un programma CGI, dopo aver ricevuto una data richiesta dal
> browser, spedisca al browser uno stream file IFS (un PDF, un XLS, o
> qualunque altra cosa) costringendo il browser a presentare un dialog-
> box per lo scarico.
>
> Questo compito � gi� stato risolto da una mia utility (gratuita ed
> open source, come tutte) denominata FUPLOAD e documentata alla
> paginahttp://www.easy400.net/fupload/html/page1.htm.
>
> In particolare, tale funzione viene espletata dal programma FUPLOAD/
> FDNLOAD.
> Il sorgente, che svela come fare, sta nel file FUPLOAD/QRPGLESRC
> ed � visibile alla

ventriglia

unread,
May 6, 2010, 8:31:39 AM5/6/10
to CGIDEV2 Italia
Ovviamente stavo utilizzando FUPLOAD2....
Credo che comunque utilizzando l'api si bypassa il problema della
versione di IE (non è facile imporre limiti).
grazie
saluti

On 6 Mag, 13:05, "Giovanni B. Perotti" <gb_pero...@easy400.net> wrote:
> Prima di tutto bisogna usare il pgm FUPLOAD2 nella libreria FUPLOAD.
> Questo programma estremamente migliore del precedente (il pgm FUPLOAD).
>
> In secondo luogo, se nel nome del file IFS in /temp comare il nome
> dell'unit pc (es: C:/... ),
> questo dipende dal fatto che si sta utilizzando una versione di Internet
> Explorer superata dai tempi di Giulio Cesrare.
> Io non posso correggere FUPLOAD2, per tener conto di questo caso, perch il
> mio I.E. aggiornato all'ultimo livello.
> Se tuttavia qualcuno si offre di utilzzare il suo I.E. cesariano per fare un
> test sul mio sistema,
> possiamo organizzare la caccia all'errore.
> Chi si volontarizza, per favore scriva al mio indirizzo personale,
> gb_pero...@easy400.net .
> > settings:http://groups.google.com/group/cgidev2-italia/subscribe?hl=en- Nascondi testo citato
>
> - Mostra testo citato -

Antonio Ventriglia

unread,
Mar 13, 2013, 3:43:31 PM3/13/13
to cgidev2...@googlegroups.com
salve,
avrei 2 quesiti da porre.
  1. non ho + le credenziali di acceso gruppo
  2. posso gestire le selct multiple
 
 
 
Saluti/Best Regards
 
~~~~~~~~~~~~~~~~~~~~~~~~
Ing. Antonio Ventriglia
CIS Informatica Srl
3357512389-096161272
~~~~~~~~~~~~~~~~~~~~~~~~
-----Messaggio originale-----
From: Giovanni B. Perotti
Sent: Thursday, May 06, 2010 1:05 PM
Subject: Re: [CGIDEV2 Italia:13] Re: Come forzare il download di uno stream file IFS
 
Prima di tutto bisogna usare il pgm FUPLOAD2 nella libreria FUPLOAD.
Questo programma è estremamente migliore del precedente (il pgm FUPLOAD).
 
In secondo luogo, se nel nome del file IFS in /temp comare il nome
dell'unità pc (es: C:/... ),
questo dipende dal fatto che si sta utilizzando una versione di Internet
Explorer superata dai tempi di Giulio Cesrare.
Io non posso correggere FUPLOAD2, per tener conto di questo caso, perchè il
mio I.E. è aggiornato all'ultimo livello.
Se tuttavia qualcuno si offre di utilzzare il suo I.E. cesariano per fare un
test sul mio sistema,
possiamo organizzare la caccia all'errore.
Chi si volontarizza, per favore scriva al mio indirizzo personale,
 
Giovanni
----- Original Message -----
From: "ventriglia" <antonio.v...@tele2.it>
To: "CGIDEV2 Italia" <cgidev2...@googlegroups.com>
Sent: Thursday, May 06, 2010 12:37 PM
Subject: [CGIDEV2 Italia:10] Re: Come forzare il download di uno stream file
IFS
 
 
Salve,
utilizzando il pgm FUPLOAD ho notato (sicuramente sbaglio) che alcune
volte (quando c'è l'estensione sul file da importare) il file viene
creato (col nome ad es. c:\clienti\.....) nell'ifs ma non è
utilizzabile....
io ho risolto utilizzando la funzione Qp0lRenameUnlink, ma non ho
capito dove sbaglio..
saluti
 
On 23 Apr, 14:11, Giovanni <gb_pero...@easy400.net> wrote:
> Quest'oggi mi è stato chiesto come si possa, con CGIDEV2, fare in modo
> che un programma CGI, dopo aver ricevuto una data richiesta dal
> browser, spedisca al browser uno stream file IFS (un PDF, un XLS, o
> qualunque altra cosa) costringendo il browser a presentare un dialog-
> box per lo scarico.
>
> Questo compito è già stato risolto da una mia utility (gratuita ed
> open source, come tutte) denominata FUPLOAD e documentata alla
>
> In particolare, tale funzione viene espletata dal programma FUPLOAD/
> FDNLOAD.
> Il sorgente, che svela come fare, sta nel file FUPLOAD/QRPGLESRC
> ed è visibile alla

Giovanni B. Perotti

unread,
Mar 13, 2013, 6:43:27 PM3/13/13
to cgidev2...@googlegroups.com

http://www.w3schools.com/tags/att_select_multiple.asp

http://cgidev2.easy400.net/cgidev2oit/exhibiu3.htm

 

Giovanni B. Perotti

www.easy400.net - Free WEB utilities for IBM System i 

 

 

 

Da: cgidev2...@googlegroups.com [mailto:cgidev2...@googlegroups.com] Per conto di Antonio Ventriglia
Inviato: mercoledì 13 marzo 2013 20:44
A: cgidev2...@googlegroups.com
Oggetto: Re: [CGIDEV2 Italia:229] Re: Come forzare il download di uno stream file IFS

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "CGIDEV2 Italia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi messaggi, invia un'email a cgidev2-itali...@googlegroups.com.
Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
 
 

antonio

unread,
Mar 15, 2013, 3:44:01 AM3/15/13
to cgidev2...@googlegroups.com
 
Grazie, Dott.Perotti
il tag:
 
<select multiple>
lo conoscevo, e la domanda, posta bene, era come riuscire a ricevere i valori della scelta multipla.
Se non ho capito male lei mi dice di andere a prendere tutte le occorrenze della variabile.
 
Posso porle un altro quesito?
Esiste qualcosa per ricevere, su pagina html  (tipo un copia-incolla) di un foglio excel?

Giovanni B. Perotti

unread,
Mar 15, 2013, 4:24:46 AM3/15/13
to cgidev2...@googlegroups.com

Per trasmettere dal browser al System i un file PC (es. un file Excel), si può utilizzare la funzione di upload insita nella procedura ZhbGetInput, vedi pagina http://cgidev2.easy400.net/cgidev/html/exhibiv3.htm .

Per scaricare da System i al browser un file PC (es. un file Excel), si può utilizzare la funzione di download descritta a pagina http://cgidev2.easy400.net/cgidev/html/exhibiv4.htm .

 

La visualizzazione di un file PC (residente sul System i) attraverso un browser è possibile solo se il browser ha un apposito plugin che lo faccia.

Per esempio, MS Internet Explorer ha un plugin che consente di visualizzare PDF trasmessi dall’Host (il plugin è scimmiottabile su Firefox).

Non sono invece al corrente dell’esistenza di nessun plugin per supportare la stessa funzione nel caso di un file Excel.

 

G.B. Perotti

 

 

Da: cgidev2...@googlegroups.com [mailto:cgidev2...@googlegroups.com] Per conto di antonio
Inviato: venerdì 15 marzo 2013 08:44
A: cgidev2...@googlegroups.com
Oggetto: [CGIDEV2 Italia:232] Re: Come gestire select multiple?

Antonio Ventriglia

unread,
Feb 26, 2015, 9:30:32 AM2/26/15
to cgidev2...@googlegroups.com
Salve Dott.Perotti,
volevo sapere se si possono impostare:
  • il login tramite userid e pw
  • l’elenco delle librerie
tramite direttive apache:
 
grazie           
 

Antonio Ventriglia

unread,
Feb 26, 2015, 9:34:42 AM2/26/15
to cgidev2...@googlegroups.com
Chiedo scusa..
naturalmente parlavo di Centaur2.
 
Saluti/Best Regards

~~~~~~~~~~~~~~~~~~~~~~~~
Ing. Antonio Ventriglia
CIS Informatica Srl
www.cisweb.it
ventrigli...@cisweb.it
3357512389-096161272
~~~~~~~~~~~~~~~~~~~~~~~~
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "CGIDEV2 Italia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a cgidev2-itali...@googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.

Giovanni B. Perotti

unread,
Feb 26, 2015, 10:33:48 AM2/26/15
to cgidev2...@googlegroups.com

1-      LOGIN AUTOMATICO

Caro Ventriglia, Lei si sarà accorto che quando si connette a www.easy400.net  e tenta di andare alla pagina di download, inizialmente Le viene chiesto di iscriversi, fornendo tra l’altro una password (l’username è il cognome).

Quando il giorno dopo Lei vuole ancora andare alla pagina di download, easy400 non Le chiede nulla, perché già sa chi è Lei ed ha fatto un “login” automatico, senza chiederLe username e password.

Questo lo fanno molti siti è non è un mistero come lo facciano.

Si usa depositare nel PC del cliente un “cookie” (praticamente un’area dati) contenente username e password.

Quando il cliente si ricollega, il programma WEB cerca il cookie sul PC e se lo trova fa automaticamente il login.

Se non lo trova, allora chiede le credenziali all’utente e poi le memorizza nel cookie del PC del cliente.

Molti siti, quando chiedono le credenziali (username e password) presentano on check-box con la scritta “ricorda i miei dati” e procedono ad inviare il cookie al PC solo se l’utente ha contrassegnato il check box.

Il cookie può avere una expiration-date, in genere da 15 minuti a tre mesi.

L’utilizzo di cookie elimina la noiosissima prassi di lasciare al Server Apache la responsabilità di controllare l’accesso tramite una validation list o, peggio ancora, il sistema di user profile, in questo campo ormai un reperto storico.

Ovviamente la gestione dei cookie è supportata da CGIDEV2, V. pag. http://cgidev2.easy400.net/cgidev2o/exhibiu8.htm .

 

2-      LIBRARY LIST

Per una impostazione della library list si può utilizzare l’ enviroment-variable QIBM_CGI_LIBRARY_LIST tramite direttiva Apache SETENV (V. pag. http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzaie/rzaiemod_env.htm#setenv  ) o addirittura a programma CGI con la procedura PutEnv() di CGIDEV2.

Nel passato si è fatta una grande discussione sull’argomento, e si sono presentate tecniche anche diverse da questa, nel forum https://groups.yahoo.com/neo/groups/Easy400Group/info , dove - se vuole – può fare una ricerca. Forse qualcosa si trova ancora.

 

Cordiali saluti,

 

Giovanni B. Perotti

www.easy400.net - WEB utilities for IBM System i 

 

 

 

Da: cgidev2...@googlegroups.com [mailto:cgidev2...@googlegroups.com] Per conto di Antonio Ventriglia
Inviato: giovedì 26 febbraio 2015 15:30
A: cgidev2...@googlegroups.com
Oggetto: [CGIDEV2 Italia:251]

--

Hai ricevuto questo messaggio perché sei iscritto al gruppo "CGIDEV2 Italia" di Google Gruppi.

Antonio Ventriglia

unread,
Feb 26, 2015, 11:08:24 AM2/26/15
to cgidev2...@googlegroups.com
Sono stato sicuramente infelice nell’esporre le domande.
Ok sul secondo punto.
Per quanto riguarda il primo punto so che si possono utilizzare i cookie per ricordare user e pw.
La giusta domanda era, quando si clicca su  login di www.easy400, chi è che valida userid e pw?
Esiste un modo attraverso il quale ci si puo loggare con la stessa userid e pw che si utilizza dalla schermata 5250, ovvero uno user creato con il comando crtusrprf.
Attualmente la validazione la faccio io con delle mie procedure, ma l’utente “vero” è QTMHHTTP.
 
Grazie
 
 
Saluti/Best Regards

~~~~~~~~~~~~~~~~~~~~~~~~
Ing. Antonio Ventriglia
CIS Informatica Srl
www.cisweb.it
ventrigli...@cisweb.it
3357512389-096161272
~~~~~~~~~~~~~~~~~~~~~~~~

Giovanni B. Perotti

unread,
Feb 26, 2015, 11:59:03 AM2/26/15
to cgidev2...@googlegroups.com

A propopsito della sistemazione della library list tramite PUTENV() all’inizio di un programma CGI:

-          I file specificati nel programma devono essere aperti esplicitamente DOPO la PutEnv(), quindi devono specificare la parola chiave USROPN .

 

Giovanni B. Perotti

www.easy400.net - WEB utilities for IBM System i 

 

 

 

Da: cgidev2...@googlegroups.com [mailto:cgidev2...@googlegroups.com] Per conto di Giovanni B. Perotti
Inviato: giovedì 26 febbraio 2015 16:34
A: cgidev2...@googlegroups.com
Oggetto: R: [CGIDEV2 Italia:253]

Giovanni B. Perotti

unread,
Feb 26, 2015, 12:52:13 PM2/26/15
to cgidev2...@googlegroups.com

In questo caso le domande sono due:

 

1-      Quando si clicca su  login di www.easy400, chi è che valida userid e pw?

Il programma CGI che controlla sull’anagrafica (dove vengono salvati sia USERID che PWD). Se OK, il CGI crea il cookie.

Il cookie viene poi ripreso dai successivi programmi CGI, i quali sanno così chi è l’utente.

2-      Per fare in modo che un programma CGI goda delle stesse autorità di un dato user profile occorre fare il login tramite http con QUEL user profile e password. L’utente corrente dei programmi CGI diventa così QUEL profilo utente.

Questo si fa tramite apposite direttive http.

3-      C’è un esempio alla figura 1 di pagina http://www.easy400.net/wrkvldl/html/page1.htm .

La richiesta ed il controllo delle credenziali è a carico del servente http e non del programma CGI. Il programma CGI può sapere quale è il profilo utente corrente nello stesso modo in cui farebbe un qualsiasi altro programma.

 

 

 

Giovanni B. Perotti

www.easy400.net - WEB utilities for IBM System i 

 

 

 

 

Da: cgidev2...@googlegroups.com [mailto:cgidev2...@googlegroups.com] Per conto di Antonio Ventriglia
Inviato: giovedì 26 febbraio 2015 17:08
A: cgidev2...@googlegroups.com
Oggetto: Re: [CGIDEV2 Italia:254]

Reply all
Reply to author
Forward
0 new messages