Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1855 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  recuperer la taille d'un fichier distant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recuperer la taille d'un fichier distant

n°1957780
golumest
Posté le 14-01-2010 à 09:34:41  profilanswer
 

Bonjour,
 
j'explique le contexte :  
 
je dois recuperé un repertoire distant contenant des images qui peut-être conséquent. Pour éviter d'encombrer la connexion et le serveur, je veux faire une comparaison entre les images que j'ai déjà  en local et les images distantes pour ne télécharger que les images qui ont changées ou qui ont été ajoutées.
 
Je suis partit sur l'idée de comparer la taille des fichiers, mais c'est peut-être plus simple de comparer la date de création?
 
y a-t-il moyen de récupérer ces données sans télécharger integralement le fichier? car sinon autant faire directement de l'annule et remplace...
 
j'ai trouvé ça en recherchant mais ça ne me convient pas puisque le féchier est téléchargé:
 
<?php
    $server = "#nom du serveur";
    $file = "/7/1394/3235/v007/5647897.jpg";
   
    $fs = @fsockopen($server, 80, $errno, $errstr, 15);
    @fputs($fs, "HEAD $file HTTP/1.0\r\n" );
    @fputs($fs, "Connection: close\r\n\r\n" );
   
    while ($line = @fgets($fs,1024))
   {
   if (substr($line, 0, 16) == "Content-Length: " )
   {
    $filesize = trim(substr($line, 16));
    @fclose($fs);
    break;
           }
  }
   
  echo "The file is $filesize bytes long";
 
?>
 
thread ici :
http://forum.hardware.fr/hfr/Progr [...] 6079_1.htm

mood
Publicité
Posté le 14-01-2010 à 09:34:41  profilanswer
 

n°1957781
flo850
moi je
Posté le 14-01-2010 à 09:40:53  profilanswer
 

tu as un accès ftp à ce serveur ?  
 
et sinon, plutôt que de réinventer la roue, tu as regardé du côté de rsync ?


---------------

n°1957785
golumest
Posté le 14-01-2010 à 09:44:46  profilanswer
 

non et non :/

 

je regarde pour rsync (je ne connais pas)

 

edit: rsync ne convient pas car ce n'est pas vraiment un repertoire à synchroniser (j'ai éditer mon 1er post), je recupere des données d'information touristique élément par élément, je passe sur les détails, mais dans chaque élément il y'a l'url d'une image stockée sur un serveur que je dois récupérer (l'image pas l'url). Les traitements étant de plus en plus consequent, je veux limiter les transfert et ne télécharger l'image que si elle n'est pas sur le serveur local OU si la taille de l'image distante par rapport à l'image locale est differente.


Message édité par golumest le 14-01-2010 à 10:02:50
n°1957790
flo850
moi je
Posté le 14-01-2010 à 09:54:55  profilanswer
 

c'est un outil de synchorinsation de fichier/dossier

 

mais c'est vrai que sans acces ftp/ssh , ça va etre compliqué

 

tu as aussi httracks qui est un outil de téléchargement de site distant


Message édité par flo850 le 14-01-2010 à 09:55:05

---------------

n°1957811
golumest
Posté le 14-01-2010 à 10:20:06  profilanswer
 

httracks, je connais, mais il n'est pas adapté pour ce que je veux faire.
 
Dans le cas qui m'interesse, je n'ai ni d'acces ssh ni ftp, je n'ai a disposition que du hhtp sans aucun droit sur le serveur distant!

n°1957843
rengzehn
Posté le 14-01-2010 à 11:14:58  profilanswer
 

Mais c'est quel protocole que tu utilises ? du http ?

n°1957873
golumest
Posté le 14-01-2010 à 12:27:07  profilanswer
 

oui http

n°1957879
golumest
Posté le 14-01-2010 à 12:49:48  profilanswer
 

bon j'ai trouvé une solution, mais je ne comprends pas comment ça peut marcher ...
 
Le $fp est à voir comme un buffer d'entrée sortie? on écrit ds $fp et en retour,  on recupere le head du fichier?
En fait on ne fait que écrire dans $fp, comment peut on avoir ce que l'on a demandé surtout que l'ont mets 3 instructions à la suite?
 
 
   $parsed = parse_url($url);
   $host = $parsed["host"];
   $fp = @fsockopen($host, 80, $errno, $errstr, 20);
   if(!$fp) return false;
   else {
       @fputs($fp, "HEAD $url HTTP/1.1\r\n" );
       @fputs($fp, "HOST: $host\r\n" );
       @fputs($fp, "Connection: close\r\n\r\n" );
       $headers = "";
       while(!@feof($fp))$headers .= @fgets ($fp, 128);
   }
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  recuperer la taille d'un fichier distant

 

Sujets relatifs
Signature et Cryptage fichier XML avec php[résolu]comment faire pour que les cell de 2 tables ont la même taille
Scrip pour récupérer loggin[xforms,exist] récupérer un attribut d'une balise <xf:repeat> ?
[VBA] Ajouter une ligne à un fichier Word à partir de cellules ExcelRécupérer le dernier ID d'une table MySQL
Enregistrer fichier deja ouvertEditer un fichier XML sous windows
Construction d'un fichierrécupérer résultat commande dans variable.
Plus de sujets relatifs à : recuperer la taille d'un fichier distant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR