Italian [B4J] Download da una cartella di un sito va e da un'altra no

Sabotto

Well-Known Member
Licensed User
Con la mia app scarico dei files che si trovano nella cartella "Livelli" di un mio sito.
Siccome variano ogni tot minuti (sono spediti sul sito da un altro programma) e devo fare delle prove con file fittizi fissi, ho copiato la cartella creandone una nuova chiamata "Livelli1"
Ma se leggo da , tutto ok... mentre se leggo da https://www.miosito/Livelli1 va in errore!
I permessi sono uguali come si vede
Perchè con una funziona e con l'altra no?



L'unica cosa che ho notato, ma non so il perchè, è che se nel browser digito l'url con "Livelli" mi dice:
Forbidden You don't have permission to access this resource.

Mentre se uso l'URL con "Livelli1" risponde:
Nessun risultato - Spiacenti, l'articolo che stai cercando non è disponibile. Vuoi provare ad effettuare una ricerca?

Mi rendo conto che forse B4A centra poco ed è piu roba di webmaster, ma qui ci sono tanti esperti...

Questa è la routine con dati reali (se qualcuno volesse provare)

B4X:
Sub DownloadFile(pSito As String, pNomeFile As String) As ResumableSub
 
    'psito vale "https:\\www.bonificadestrasele.it\Livelli1"
    'pNomeFile vale "Misure Asa.txt"
 
    Dim result As Boolean = False
    Dim NomeFileCompleto As String =  File.Combine(pSito,pNomeFile).Replace(" ","%20")
    Try
        Dim j As HttpJob
        j.Initialize("", Me)
        j.Download(NomeFileCompleto)
        Wait For (j) JobDone(j As HttpJob) ' ==> qui va in errore, se uso "Livelli1" e funziona se uso Livelli
        If j.Success Then
            Dim out As OutputStream = File.OpenOutput(DirDestination, pNomeFile, False)
            'copia il file appena scaricato (j.getInputStream) nel file appena creato (out)
            File.Copy2(j.GetInputStream, out)
            out.Close '<------ very important
            result=True
        End If
        j.Release
    Catch
        Log("Errore in routine DownloadFile " & CRLF & LastException)
        xui.MsgboxAsync ("Errore nello scaricare il file " & pNomeFile & " dal sito!" ,"Errore E4")
        Wait For msgbox_result
    End Try
    Return result

End Sub

L'errore è:

ResponseError. Reason: , Response: <!DOCTYPE html>
<html lang="it-IT" class="html_stretched responsive av-preloader-active av-preloader-enabled html_header_top html_logo_left html_main_nav_header html_menu_right html_custom html_header_sticky html_header_shrinking html_header_topbar_active html_mobile_menu_phone html_header_searchicon html_content_align_center html_header_unstick_top_disabled html_header_stretch_disabled html_av-overlay-side html_av-overlay-side-classic html_av-submenu-noclone av-cookies-no-cookie-consent av-no-preview av-default-lightbox html_text_menu_active av-mobile-menu-switch-default">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="noindex, nofollow" />
<!-- mobile setting -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Scripts/CSS and wp_head hook -->
<title>Pagina non trovata &#8211; Consorzio di Bonifica in Destra del Fiume Sele</title>
<meta name='robots' content='noindex, nofollow' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<link rel="alternate" type="application/rss+xml" title="Consorzio di Bonifica in Destra del Fiume Sele &raquo; Feed" href="https://www.bonificadestrasele.it/feed/" />
<link rel="alternate" type="application/rss+xml" title="Consorzio di Bonifica in Destra del Fiume Sele &raquo; Feed dei commenti" href="https://www.bonificadestrasele.it/comments/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
.. ecc ecc ecc
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Prova ad aggiungere
B4X:
j.GetRequest.SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36")
dopo
B4X:
j.Download(NomeFileCompleto)
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Dopo aver calcolato la variabile NomeFileCompleto prova a mettere
B4X:
Log(NomeFileCompleto)
perchè secondo me hai le barre sbagliate.

Infatti tu scrivi
B4X:
https:\\www.bonificadestrasele.it\Livelli1

e invece dovrebbe essere
B4X:
https://www.bonificadestrasele.it/Livelli1

Altra cosa: con File.Combine se sei con B4A inserisce un "/" tra i due componenti, ma se sei con B4J credo inserisca il "\" perchè dipende dal sistema operativo e quindi anche lì dovresti sistemare con
B4X:
Dim NomeFileCompleto As String =  (pSito & "/" & pNomeFile).As(String).Replace(" ","%20")
 
Last edited:

Sabotto

Well-Known Member
Licensed User
le barre sono giuste / (erano errate nel post.)
Ma.il.problema è che il.codice identico per entrambe, con Livelli funziona e con Livelli1 no.
Se fosse sbagliato non.dovrebbe funzionare nemmeno con Livelli (senza l'1 finale)
 

sirjo66

Well-Known Member
Licensed User
Longtime User
ok, ma il Log che ti ho consigliato io di aggiungere che ti dice ??
Il File.Combine che carattere aggiunge ??
 

Sabotto

Well-Known Member
Licensed User
ok, ma il Log che ti ho consigliato io di aggiungere che ti dice ??
Il File.Combine che carattere aggiunge ??
Ciao. scusami ma ieri sera mi è arrivato il febbrone...
Ho cambiato come mi hai detto ed il Log restituisce ora
B4X:
https://www.bonificadestrasele.it/Livelli1/Misure%20ASA.txt

Ma, come ho gia detto, non credo sia una questione di codice perchè se uso la cartella Livelli, funziona.
Ho preparato un miniprogettino di test, togliendo tutto il superfluo: se qualche buon cuore vuol provare in debug. Ci sono due radiobutton per fare il test con Livelli (che funziona e darà esito positivo) e con Livelli1 (e nel log esce il papiello degli errori).

prova a rinominare la Cartella in Livelliuno, il nr 1 potrebbe dargli fastidio
fatto. niente da fare
 

Attachments

  • Project.zip
    103.5 KB · Views: 5

Xfood

Expert
Licensed User
ciao, ho provato direttamente il link
uno mi da questo come risultato
credo sia un problema di server





 

Elric

Well-Known Member
Licensed User
L'intuito mi dice che forse è un problema legato alla creazione o alle impostazioni di accesso alle cartelle.

Hai provato a creare due nuove cartelle di sana pianta, con nomi ovviamente diversi da questi?

Oppure, visto che "Livelli" funziona, eliminare "Livelli1", replicare "Livelli" e cambiare nome?

Sono soluzioni di alto livello, stile "spegni e riavvia", ma quel che conta è il risultato.
 

Sabotto

Well-Known Member
Licensed User
La cosa "bella" è che questa cartella Livelli1 che ho creato e vorrei usare (ma non riesco ad accedervi) mi serviva perchè da ieri mattina sta succedendo che tutti i files che vengono inviati sul sito, per poi essere letti dall'app, sul sito sono giusti (lo vedo da Filezilla) nel senso che la stringa al loro interno ha la data e l'orario di qualche minuto prima, mentre quelli, come ha potuto notare anche xfood, che vengono scaricati hanno tutti la data del 28 novembre 2023!!!
In pratica vengono scaricati i files dal sito ma il contenuto è quello sempre del 28 novembre 2023!!
Cosi, di botto. L'app funziona da anni. Ieri mi chiamano e mi dicono (guarda che i livelli sono fermi al 28.11.2023)
Ho controllato ovviamente anche l'exe che si occupa ogni 2/3 minuti di prendere i files e buttarli sul sito e i files sono giusti, con contenuto giusto!
Lo stesso problema lo ho anche sulla stessa app fatta in B4A.
Ma per fare le prove ovviamente era piu comodo usare B4J
Mi rimetto a fare prove e grazie a tutti. Se vi viene in mente qualcosa dite pure
 

Sabotto

Well-Known Member
Licensed User
EDIT:
Ho creato un file di prova "pippomio.txt" e l'ho messo nella cartella Livelli del sito, dove, tra gli altri c'è anche il file "Misure ASA.txt"
Ebbene "pippomio.txt" non viene letto, dà il solito errore, mentre "Misure ASA.txt" viene letto, ma in realtà dentro, come detto, c'è la stringa del file che fu generato il 28/11/2023
Quindi deduco che ci siano problemi sul server di aruba e il 28.11.2023 è un file rimasto in qualche cache.
Ma come glielo spiego ad aruba? Visto che se accedo da Filezilla, dentro la cartella, i files hanno il contenuto con la data giusta!
E' chiaro che mi rispondono che è un problema della mia app..
 

Sabotto

Well-Known Member
Licensed User
EDIT:
Ma come glielo spiego ad aruba? Visto che se accedo da Filezilla, dentro la cartella, i files hanno il contenuto con la data giusta!
E' chiaro che mi rispondono che è un problema della mia app..
Idea. Gli scrivo che se digito nel browser l'url diretto, come ha fatto Xfood, si vede che il contenuto del file è diverso da quello che sta sul sito!
Da dove la prende quella stringa del 28.11.2023?!?!?
Vi tengo aggiornati...
 

Xfood

Expert
Licensed User
L'unica cosa che mi viene in mente, ,( per aggirare l'ostacolo) visto che in modalità FTP funziona, perché non scarichi il file in modalità FTP?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…