Autore Topic: [Risolto] Scaricare Files senza l'uso di wget  (Letto 1252 volte)

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
u
« Risposta #15 il: 13 Luglio 2014, 19:14:48 »
Allora, ho fatto un po di confusione. Questa procedura non ha funzionato, o, ad ogni modo non ho trovato il file scaricato nella cartella di destinazione. analizzando l'esempio da te proposto ho visto che ricreavi il file nella cartella /temp ed io li non sono andato a cercare! Quindi proverò con questo metodo andando a cercare il file scaricato in quella cartella.

Forse risolvo così :)


Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #16 il: 23 Luglio 2014, 20:41:57 »
il mio problema è questo: Devo scegliere il file da scaricare mediante un radio button, così catturo in una stringa quello che sarà l'url del file da scaricare...

Esempio:
Codice: [Seleziona]
Public Sub RadioButton3_Click()

  Sdnldwad = "www.pc-freak.net/files/doom-wad-files/Tnt.wad"

Quindi per scaricare questo file, seguendo la guida nel wiki nonché il tuo esempio srivo:

Codice: [Seleziona]
myhttp.URL = Sdnldwad

ma, purtroppo, ricevo l'errore
Citazione
Unknown Protocol
come si evince dall'immagine allegata.


Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #17 il: 23 Luglio 2014, 20:56:24 »
il mio problema è questo: Devo scegliere il file da scaricare mediante un radio button, così catturo in una stringa quello che sarà l'url del file da scaricare...

ma, purtroppo, ricevo l'errore
Citazione
Unknown Protocol


Strano... a me funziona perfettamente  :-\ : ho scaricato quel file di 18,2 Mbyte.

1) clicco nel RadioButton, facendo apparire la pallina nera nel cerchietto bianco;
2) clicco quindi sul Button.
Il problema da te esposto mi sorge se non clicco preveliminarmente nel RadioButton.

Il codice da me adottato:
Codice: gambas [Seleziona]
Private myhttp As New HttpClient As "myhttp"    
Private stringa As String  
Private Sdnldwad As String
        
    
Public Sub RadioButton1_Click()

  Sdnldwad = "www.pc-freak.net/files/doom-wad-files/Tnt.wad"

End
      

Public Sub Button1_Click()  

    Print "Scarico file da: "; Sdnldwad
    
    ' invia_richiesta al server per scaricare il file:  
    myhttp.URL = Sdnldwad
      
    myhttp.Timeout = 15    
    myhttp.Get()  
          
End    
      
      
Public Sub myhttp_Read()    
          
    Dim sBuf As String    
        
    ' Andiamo a leggere il flusso di dati del file:  
      If Lof(MyHTTP) Then    
        Read #MyHTTP, sBuf, Lof(MyHTTP)  
        stringa = stringa & sBuf  
      End If  
      
End  


Public Sub MyHTTP_Finished()    
        
     Label1.Text = ("File scaricato !")    
            
     Wait    
      
     MyHTTP.Close    

    ' Ricreiamo il file:  
     File.Save("/tmp/Doom1.WAD", stringa)  
      
End  
« Ultima modifica: 23 Luglio 2014, 20:59:19 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #18 il: 23 Luglio 2014, 21:04:31 »
Grazie Vuott

Ho provato così:

La scelta del radio button imposta il parametro myhttp.URL direttamente senza usare stringhe
Codice: [Seleziona]
Public Sub RadioButton1_Click()

  myhttp.URL = "www.pc-freak.net/files/doom-wad-files/Doom1.WAD"

End

Premendo il pulsante Start Download non ricevo più l'errore, mi chiedo se realmente il comando viene eseguito... c'è modo di verificarlo ?!?
Provando nella cartella di destinazione non trovo il file, nemmeno in quella /temp.


Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #19 il: 23 Luglio 2014, 21:16:19 »
La scelta del radio button imposta il parametro myhttp.URL direttamente senza usare stringhe
Mi sembra una limitazione, però ! A me funziona regolarmente.  :-\




Premendo il pulsante Start Download non ricevo più l'errore, mi chiedo se realmente il comando viene eseguito... c'è modo di verificarlo ?!?
Provando nella cartella di destinazione non trovo il file, nemmeno in quella /temp.

Io ho dovuto attendere un po' per ottenere loscarico dei 18 megabyte.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #20 il: 23 Luglio 2014, 21:57:32 »
Ho risolto, col metodo usato sopra. I files sono regolarmente scaricati, ho dovuto modificare il tutto così da poter cambiare il nome in modo appropriato automaticamente.

Codice: [Seleziona]
Public Sub RadioButton1_Click()

  myhttp.URL = "www.pc-freak.net/files/doom-wad-files/Doom1.WAD"
 sdwad = "Doom.wad"
End


Codice: [Seleziona]
Public Sub MyHTTP_Finished()
 
  Wait
  MyHTTP.Close
  File.Save(sdnldpath & sdwad, stringa)
 
End

Unico neo, a questo punto, il tempo d'attesa...
Ho notato che esiste una funzione myhttp_Progress che gambas suggerisce durante la digitazione... potrebbe essere utile per ricavare informazioni riguardante il download in modo da verificare lo stato del download con una progress bar? Grazie

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: [Risolto] Scaricare Files senza l'uso di wget
« Risposta #21 il: 23 Luglio 2014, 22:01:17 »
Intanto ho modificato il titolo e aggiunto Risolto, casomai, per la progress bar, apro un altro tread !!! Grazie Cmq a tutti !!!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Scaricare Files senza l'uso di wget
« Risposta #22 il: 23 Luglio 2014, 22:31:34 »
Ho notato che esiste una funzione myhttp_Progress che gambas suggerisce durante la digitazione... potrebbe essere utile per ricavare informazioni riguardante il download in modo da verificare lo stato del download con una progress bar?
Fai la prova.  :-\


« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: [Risolto] Scaricare Files senza l'uso di wget
« Risposta #23 il: 24 Luglio 2014, 11:11:56 »
Ma la procedura qui descritta scarica il file in un qualche posto, se riuscissi a capire dove, potrei attingere alla porzione scaricata e rilevando i dati neessari per impostare la progress bar. Altrimenti non so proprio come procedere.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [Risolto] Scaricare Files senza l'uso di wget
« Risposta #24 il: 24 Luglio 2014, 14:38:24 »
...scarica il file in un qualche posto, se riuscissi a capire dove
Cioè tu dici che avere, ad esempio, questo indirizzo
 
Codice: [Seleziona]
www.pc-freak.net/files/doom-wad-files/Doom1.WAD
non è sufficiente ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: [Risolto] Scaricare Files senza l'uso di wget
« Risposta #25 il: 24 Luglio 2014, 16:23:01 »
Credo di no, perché la progress bar dovrebbe visualizzare la porzione di file scaricata non quella presente sul server che, comunque, serve per confrontare la differenza il file remoto con quello scaricato. Mi spiego meglio. Quando eseguo il programma controllo costantemente il path dove voglio che il file venga scritto ma, non so per quale motivo, appare solo nell'istante in cui assume la dimensione finale. Quindi, o la procedura scarica il file da qualche altra parte e poi, a download ultimato, lo sposta nel path che ho impostato, oppure crea un file nascosto, con qualche estensione tipo xxx.part come fanno i browser tipo firefox e poi lo rende visibile. Analizzando però il codice, non essendo programmatore, mi sforzo a capire cosa fa per creare il suddetto file.

Esaminando questa porzione di codice direi che:

Codice: [Seleziona]
Public Sub myhttp_Read()      
           
   Dim sBuf As String     
         
   ' Andiamo a leggere il flusso di dati del file:   
     If Lof(MyHTTP) Then       
       Read #MyHTTP, sBuf, Lof(MyHTTP)   
       stringa = stringa & sBuf   
     End If   
       
End   
 

Si dichiara una matrice sBuf che conterrà dei caratteri alfanumerici. Probabilmente  il contenuto di questa matrice sarà il flusso del file che sto scaricando. Secondo me, è qui che potrei attingere ai dati necessari perché una progress bar avanzi tenendo conto dei dati che sBuf ha accumulato. Un esempio potrebbe essere quello di misurare i byte che la stessa occupa, confrontarli con quelli del file che sto scaricando, per verificare la percentuale rimanente.... solo non so come procedere in questo senso. Ma ci proverò giusto per acquisire maggior dimestichezza !!!