[R] InetGetSize() Problème pour retour de la valeur?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Pollux
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 nov. 2008 05:09
Status : Hors ligne

[R] InetGetSize() Problème pour retour de la valeur?

#1

Message par Pollux »

Bonjour à tous.

Me revoilà à utiliser la fonction InetGetSize() pour récupérer la taille de certains fichiers sur le net.

J'ai remarqué qu'il n'y a pas de soucis pour récupérer la taille de petits fichiers (585 octets par exemple).
En revanche, pour les fichiers grands ou de taille moyenne, ça me retourne très souvent 0, des fois ça me donne la bonne valeur (rare), ou des fois ça me donne 0 puis la bonne valeur une fois le cache d'internet explorer nettoyé.

J'essaye de repérer le problème mais je ne trouve pas de raison précise à ce retour de "0". J'ai déjà essayé les permissions CHMOD 777 sur le FTP où sont déposés les fichiers (j'ai même essayé un autre hôte web).

J'ai pensé que ça pouvait être le webhost, mais dans ce cas je ne vois pas pourquoi il me retourne bon dans certains cas et pas dans d'autres.

J'aurais aimé utilisé InetRead() mais il ne donne pas la taille du fichier, que le nombre de bytes lus :(

Le code de test utilisé, tout simple :

Code : Tout sélectionner

Local $nSize = InetGetSize("http://www.siteweb.com/dossier/lefichier.xyz")
MsgBox(0, "Size of remote file:", $nSize)
 
Version AutoIt : la plus récente
Version IE : 8

Toute aide serait la bienvenue.

Merci d'avance,


Pollux
Modifié en dernier par Pollux le jeu. 07 oct. 2010 11:18, modifié 1 fois.
Image
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] InetGetSize() Problème pour retour de la valeur?

#2

Message par Tlem »

Aucun problème de mon coté.
Si vous avez des exemples (liens) ce serait plus facile.

Avez-vous regardé du coté des options de la commande InetGetSize ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Pollux
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 nov. 2008 05:09
Status : Hors ligne

Re: [..] InetGetSize() Problème pour retour de la valeur?

#3

Message par Pollux »

Merci pour votre réponse ;)

Voici un exemple de fichier qui me donne 0 en retour de taille avec INetGetSize :

Code : Tout sélectionner

Local $nSize = InetGetSize("http://www.iris.mezoka.com/TestFolder/Hamsters.txt")
MsgBox(0, "Size of remote file:", $nSize)
 
La taille du fichier (qui ne m'est pas renvoyée) est 4134543 octets.

Dans le pire des cas, je pourrais toujours indexer les tailles dans un fichier texte à part (vu que je connais les tailles des fichiers que je dépose), mais ça me trouble de ne pas savoir d'où ça vient :(

Pour les options, j'ai tout essayé également, mais le résultat est toujours 0.


Pollux
Image
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] InetGetSize() Problème pour retour de la valeur?

#4

Message par Tlem »

J'obtiens aussi un retour de 0, mais si je tente d'accéder au fichier directement avec mon navigateur, j'ai une belle page d'erreur :
  • Forbidden
    You don't have permission to access
Je dirait donc qu'il est normal que InetGetSize vous renvoie 0.
Cela signifie qu'il ne peut accéder au fichier. :wink:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Pollux
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 nov. 2008 05:09
Status : Hors ligne

Re: [..] InetGetSize() Problème pour retour de la valeur?

#5

Message par Pollux »

Tlem a écrit :J'obtiens aussi un retour de 0, mais si je tente d'accéder au fichier directement avec mon navigateur, j'ai une belle page d'erreur :
  • Forbidden
    You don't have permission to access
Je dirait donc qu'il est normal que InetGetSize vous renvoie 0.
Cela signifie qu'il ne peut accéder au fichier. :wink:
Mes excuses, mauvaise extension. :P
avec ceci, vous obtenez 0 en renvoi mais pas de forbidden en tentant d'accéder à la page :

Code : Tout sélectionner

Local $nSize = InetGetSize("http://www.iris.mezoka.com/TestFolder/Hamsters.ini")
MsgBox(0, "Size of remote file:", $nSize)
 


Pollux
Image
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] InetGetSize() Problème pour retour de la valeur?

#6

Message par Tlem »

Effectivement, cela ne fonctionne pas avec ce serveur.
Vous rentrez donc dans le cadre des situations exceptionnelles décrite dans la section Remarks de la commande InetGetSize.
Remarks

Not all servers will correctly give the file size, especially when using a proxy server.
Peut être devriez-vous essayer de vous connecter comme indiqué dans la phrase qui précède cette remarque :
To use a username and password when connecting simply prefix the servername with "username:password@", e.g.
"http://myuser:mypassword@www.somesite.com"
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Pollux
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 nov. 2008 05:09
Status : Hors ligne

Re: [R] InetGetSize() Problème pour retour de la valeur?

#7

Message par Pollux »

Malheureusement ce n'est pas possible, car le programme que je code est destiné à un large éventail de personnes, donc mettre un login/pass est trop dangereux, même en obfuscant le code :wink:

On dirait donc que je n'ait pas de chance pour les webhosts utilisés.. Je vais rester sur mon autre solution (que je peux heureusement employer), un fichier contenant les tailles des fichiers déposés. C'est un peu plus fastidieux à faire mais ça marche bien tout en passant outre ce problème de "taille".

Merci pour votre support :wink: Je passe en [R]


Pollux
Image
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] InetGetSize() Problème pour retour de la valeur?

#8

Message par jchd »

Cette "non-réponse" sur la taille est un problème courant. Je n'ai absolument pas le temps de creuser les docs (et encore, qui les respecte ?), mais il me semble que la réponse à ce type de requête est optionnelle. Du fait, si le serveur est chargé ou s'il le juge peu utile, il semble avoir le droit de ne pas répondre avec une information juste. De plus, comme l'illustre le coup du proxy, il y a maintenant tellement de complexité dans les architectures serveur que les données "simplement informationnelles" comme celle-ci ont facilement tendance à passer à la trappe. Par contre, les pubs ne courent que rarement ce risque. Allez comprendre !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Sh4dows
Status : Hors ligne

Re: [R] InetGetSize() Problème pour retour de la valeur?

#9

Message par Sh4dows »

Changer le CHMOD du fichier peut être sait-on jamais :p

Pour ma part chez moi quand je fais ceci :

Code : Tout sélectionner

$nSize = InetGetSize("http://www.hide.com/f.txt")
MsgBox(0, "Size of remote file:", $nSize)
 
Il me retourne bien la valeur de f.txt...

Dans votre cas :
Me retourne 0 donc soit vous mettez le chmod à 777 ou comme moi à 644.
Après si cela ne change rien ce qui est probable tentez de le mettre à la racine de manière à donner :
Et si votre problème persiste il ne vous reste plus qu'a enlever la majuscule à "Hamsters" ou à prendre un autre hébergeur non gratuit :lol:
Avatar du membre
Pollux
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 nov. 2008 05:09
Status : Hors ligne

Re: [R] InetGetSize() Problème pour retour de la valeur?

#10

Message par Pollux »

Merci pour vos réponses ;)

Pour le CHMOD 777 déjà tenté, ainsi que placer le fichier à la racine : Même souci.
Cela vient donc bien du webhost qui fait des siennes. Alala.. Unlucky, le Pollux :evil:
Si effectivement la requête est optionnelle, ça explique assez bien pourquoi j'ai le même souci sur plusieurs webhosts. Enfin bon étant donné que c'est gratuit, on ne peut pas avoir le beurre et l'argent du beurre :?

Je compte bien me payer un hébergement un jour, mais pour le moment je vais me contenter de contourner mon problème avec un fichier texte :mrgreen:


Pollux
Image
Répondre