Autore Topic: [RISOLTO] Inviare file con gb.web.gui  (Letto 1493 volte)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
[RISOLTO] Inviare file con gb.web.gui
« il: 04 Agosto 2022, 17:01:56 »
Ciao a tutti. E' da poco che utilizzo questo interessante componente che ti permette di creare applicazioni web CGI.
Sto utilizzando come modello i sorgenti del programma WebDemo che si trova sulla software farm di gambas, ho creato dei report consultabili via web all'interno dell'azienda ed ora volevo inviare il contenuto della tabella del report, sotto forma di un file csv al client collegato ma non riesco a trovare il modo di farlo.
Qualcuno ha qualche idea?
« Ultima modifica: 09 Agosto 2022, 14:58:29 da milio »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #1 il: 04 Agosto 2022, 18:31:00 »
Ciao a tutti. E' da poco che utilizzo questo interessante componente che ti permette di creare applicazioni web CGI.
Sto utilizzando come modello i sorgenti del programma WebDemo che si trova sulla software farm di gambas, ho creato dei report consultabili via web all'interno dell'azienda ed ora volevo inviare il contenuto della tabella del report, sotto forma di un file csv al client collegato ma non riesco a trovare il modo di farlo.
Qualcuno ha qualche idea?

Qualcosa ho fatto, ma ora sto uscendo...
Domani ti rispondo

Ciao e scusa
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #2 il: 04 Agosto 2022, 19:50:12 »
Qualcosa ho fatto, ma ora sto uscendo...
Domani ti rispondo

Ciao e scusa

Scusa di che, anzi sono io che devo scusarmi, avrei dovuto esserci gia' arrivato....  :hatecomputer:

Ho provato con
Codice: [Seleziona]
Response.SendFile(Path As String [ , ContentType As String ])
ma probabilmente non serve allo scopo....

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #3 il: 05 Agosto 2022, 10:40:29 »
E invece mi scuso nuovamente  :-[
Non riesco a trovare il piccolo lavoro che avevo fatto sotto le direttive di Lee.
Comunque, se ricordo bene, era basato su questi esempi e l'uso di post (gb.net.curl), ma non sono sicuro.
Come avrai capito di server ci mastico poco...
Purtroppo gb.web.gui ha bisogno di javascript che non è nella mia conoscenza.

Qui c'è una discussione che spero possa aiutarti:
https://lists.gambas-basic.org/pipermail/user/2022-June/076211.html

Importante:
Posso chiedere aiuto sia al prof. Hans Lehmann autore del libro tedesco su Gambas che allo stesso Lee che a volte insieme al sottoscritto collabora col professore.

Per farlo avrei bisogno di un piccolo esempio esplicativo, qualcosa di essenziale che possa aiutare loro a comprendere il problema.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #4 il: 05 Agosto 2022, 14:19:05 »
Seguendo il suggerimento di vuott, giusto per aiutare chi non sa di cosa si parla, metto il link a dei filmati di lezioni spagnole postati da Alessandri Guzman che riguardano l'antenato di gb.web.gui e cioè gb.web.form che pur essendo obsoleto e deprecato può aiutare nello studio del componente.

https://www.youtube.com/channel/UCEdI19J6sWOfZe_cdEE7U7g
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #5 il: 06 Agosto 2022, 11:57:24 »
Allora ravanando un poco su internet ho trovato che si dovenva aggiungere
Codice: [Seleziona]
Response.AddHeader("Content-Disposition", "attachment;filename=\"data.csv\"")

Codice: [Seleziona]
Public Sub Main()

  Dim Nx As Integer
  Dim Nx2 As Integer
  Dim s, r As String
  Dim sPath As String

  For Nx = 0 To 10
    For Nx2 = 0 To 10
      s &= Nx2 & ";"
    Next
    r &= Left(s, -1) & "\n"
    s = ""
  Next

  sPath = Temp() & ".csv"

  File.Save(sPath, r)

  Response.AddHeader("Content-Disposition", "attachment;filename=\"data.csv\"")

  Response.SendFile(sPath, "text/plain")

End

Il problema rimane per i fatto che se lancio questo codice 'da solo' il browser di fatto mi scarica l'allegato con nome dati.csv.
Se il codice lo faccio partire da un form e' come se la pagina sul browser rimanesse in perenne attesa e non scarica nulla....
« Ultima modifica: 06 Agosto 2022, 13:35:09 da milio »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #6 il: 06 Agosto 2022, 14:46:41 »
Allego esempio per eventuali test....

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #7 il: 06 Agosto 2022, 15:32:57 »
Ok lo invio ad Hans e ti faccio sapere
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #8 il: 06 Agosto 2022, 18:26:41 »
Allego esempio per eventuali test....

Mi scuso ho avuto (spero) dei problemi col firmware e solo ora ho dato un occhio.

Io i file inviati alla cartella tmp li vedo, quindi, cosa deve succedere?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #9 il: 06 Agosto 2022, 23:11:32 »
Da browser dovrebbe vedersi un tasto con scritto CSV giusto?
Il file nella cartella temp è il server che lo genera e da browser si dovrebbe vedere iniziare lo scaricamento e relativo salvataggio nella cartella di download.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #10 il: 06 Agosto 2022, 23:51:21 »
Da browser dovrebbe vedersi un tasto con scritto CSV giusto?
Si, corretto
Citazione
Il file nella cartella temp è il server che lo genera e da browser si dovrebbe vedere iniziare lo scaricamento e relativo salvataggio nella cartella di download.

No, questo non succede

Sono fuso vado a dormire, domani a mente fredda ci ragiono, buonanotte.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #11 il: 08 Agosto 2022, 10:16:54 »
Da browser dovrebbe vedersi un tasto con scritto CSV giusto?
Il file nella cartella temp è il server che lo genera e da browser si dovrebbe vedere iniziare lo scaricamento e relativo salvataggio nella cartella di download.

Ho chiesto sulla ML e ho ricevuto questa risposta interessante da Safiur Rahman:
https://lists.gambas-basic.org/pipermail/user/2022-August/076683.html

Invece qui Lee, rivolgendosi a Minisini, parla di un possibile bug:
https://lists.gambas-basic.org/pipermail/user/2022-August/076682.html
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #12 il: 08 Agosto 2022, 15:12:40 »
Testo subito il suggerimento di Rahman aspettando la risposta di Benoit....

Grazie ancora Gianluigi  :ok:

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #13 il: 08 Agosto 2022, 19:47:33 »
Allora applicando il suggerimento di Rahman e lanciando la procedura da webform la pagina nel browser si frizza.
Lanciandolo direttamente da un modulo di avvio (quindi non viene generato una pagina web ma direttamente il file e il comando per scaricarlo) il mio server apache mi da questo errore:

Codice: [Seleziona]
[Mon Aug 08 19:43:48.918779 2022] [cgid:error] [pid 1089:tid 140609880831744] [client ::1:42238] End of script output before headers: WebDemo.gambas

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Inviare file con gb.web.gui
« Risposta #14 il: 09 Agosto 2022, 09:46:52 »
Allora applicando il suggerimento di Rahman e lanciando la procedura da webform la pagina nel browser si frizza.
Lanciandolo direttamente da un modulo di avvio (quindi non viene generato una pagina web ma direttamente il file e il comando per scaricarlo) il mio server apache mi da questo errore:

Codice: [Seleziona]
[Mon Aug 08 19:43:48.918779 2022] [cgid:error] [pid 1089:tid 140609880831744] [client ::1:42238] End of script output before headers: WebDemo.gambas

Safiur ha risposto con questo esempio che funziona bene, a me sembra o forse no?(prima occorre creare le cartelle come da suggerimento iniziale)
qui il collegamento alla risposta:
https://lists.gambas-basic.org/pipermail/user/2022-August/076688.html

Qui lo scambio fra Benoit e Lee:
https://lists.gambas-basic.org/pipermail/user/2022-August/076686.html
https://lists.gambas-basic.org/pipermail/user/2022-August/076687.html
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro