URLDownloadToFile_
URLDownloadToFile_
Comment connaitre la taille d'un fichier avant de lancer la commande URLDownloadToFile_ ( de l'API Win32) ?
Merci d'avance
Merci d'avance
Il y a un exemple complet ici:
http://www.purebasic.fr/english/viewtop ... uscallback
http://www.purebasic.fr/english/viewtop ... uscallback
je ne vois pas comment t'aider, mais un truc à la barbare peut marcher
j'ai lu sur msdn que cette fonction peut renvoyer cette constante :
ce qui signifie qu'il na pas assez de mémoire pour stocké le fichier proprement dit. Tu fixe la mémoire à 1 bytes , et tant que URLDownloadToFile_() = E_OUTOFMEMORY , alors tu incrémentes ta zone mémoire de 1 bytes , etc...
a moins qu'il existe une commande pour cela...
j'ai lu sur msdn que cette fonction peut renvoyer cette constante :
Code : Tout sélectionner
E_OUTOFMEMORY
a moins qu'il existe une commande pour cela...
Droopy je ne suis pas trés performant en C mais j'ai trouvé cela :
public static String getFileSize (String url) throws Exception
{
URL aURL = new URL (url);
URLConnection yc = aURL.openConnection ();
// recupere la taille du fichier .....
int FileLenght = yc.getContentLength();
if (FileLenght == -1 ) {
throw new IOException("Fichier non valide.");
}
return FileLenght;
}
J'espère que tu pourras en tirere quelque chose !
public static String getFileSize (String url) throws Exception
{
URL aURL = new URL (url);
URLConnection yc = aURL.openConnection ();
// recupere la taille du fichier .....
int FileLenght = yc.getContentLength();
if (FileLenght == -1 ) {
throw new IOException("Fichier non valide.");
}
return FileLenght;
}
J'espère que tu pourras en tirere quelque chose !
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Merci les gars, j'ai eu une réponse de NetMaestro sur le forum anglais, qui m'a aiguillé sur le même type de code que nico .
J'ai modifié le code en question pour répondre à mon besoin:
J'ai modifié le code en question pour répondre à mon besoin:
Code : Tout sélectionner
;/ Basé sur le code de Joakim L. Christiansen
Procedure HttpFileSize(Url.s)
hInet = InternetOpen_("Downloader",0,0,0,0)
hURL = InternetOpenUrl_(hInet,Url,0,0,$80000000,0)
BufferLength = 2048
Buffer.s = Space(BufferLength)
BufferLengthWas = BufferLength
Domain.s = StringField(Url,3,"/")
hInetCon = InternetConnect_(hInet,Domain,80,#Null,#Null,3,0,0)
If hInetCon
hHttpOpenRequest = HttpOpenRequest_(hInetCon,"HEAD",ReplaceString(Url,"http://"+Domain+"/",""),#Null,#Null,0,$80000000,0)
If hHttpOpenRequest
iretval = HttpSendRequest_(hHttpOpenRequest,#Null,0,0,0)
If iretval
HttpQueryInfo_(hHttpOpenRequest,19,@Buffer,@BufferLength,0)
String.s = PeekS(@Buffer,BufferLength): BufferLength = BufferLengthWas
If Trim(String.s) = "200"
HttpQueryInfo_(hHttpOpenRequest,22,@Buffer,@BufferLength,0)
String.s = PeekS(@Buffer,BufferLength): BufferLength = BufferLengthWas
Debug String.s
If FindString(String.s,"Content-Length:",1)
i = FindString(String.s,"Content-Length:",1) + Len("Content-Length:")
String.s = Mid(String.s,i,Len(String.s)-i)
FileSize = Val(Trim(String.s))
EndIf
EndIf
EndIf
EndIf
EndIf
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInetCon)
InternetCloseHandle_(hInet)
ProcedureReturn FileSize
EndProcedure
MessageRequester("",Str(HttpFileSize("http://acervo.gratis.com.br/arquivos/distrib/544/SafariSetup.exe")))
Salut, je pose mes questions ici pour éviter d'ouvrir un nouveau sujet sur le même thème.
Savez vous s'il est possible de lancer un téléchargement avec URLDownloadToFile_() sur un fichier protégé en htaccess?
si oui comment?
Ou alors faut-il obligatoirement ouvrir une connexion ftp au serveur où se trouve le fichier ? (méthode que j'utilise actuellement)
merci.
Savez vous s'il est possible de lancer un téléchargement avec URLDownloadToFile_() sur un fichier protégé en htaccess?
si oui comment?
Ou alors faut-il obligatoirement ouvrir une connexion ftp au serveur où se trouve le fichier ? (méthode que j'utilise actuellement)
merci.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.