2009-12-04 16 views
0

Comment obtenir la taille d'un fichier CFHTTPStream. Supposons qu'un fichier appelé "http://testserver.com/test.jpg" soit disponible à lire. Ici, j'ai besoin d'obtenir la taille du fichier "test.jpg", j'ai besoin d'afficher la progression en utilisant CFReadStreamRead. En d'autres termes, j'ai besoin du nombre d'octets disponibles dans le serveur
avant le début du processus de lecture.obtenir la taille de fichier d'un CFHTTPStream

Merci à l'avance

Mohsin

Répondre

0

Vous obtiendrez l'en-tête de message du flux thusly:

CFHTTPMessageRef message = CFReadStreamCopyProperty(requestStream, kCFStreamPropertyHTTPResponseHeader); 

puis copiez les champs d'en-tête:

CFDictionaryRef headerFields = CFHTTPMessageCopyAllHeaderFields(message); 

et puis récupérez le champ content-length dans le dictionnaire.

Je ne me souviens pas complètement du nom de champ spécifique, donc vider le dict & saisit celui qui semble correct. Vous aurez besoin de lire au moins un peu du flux pour obtenir l'en-tête.