taille d'un fichier distant

taille d'un fichier distant - PHP - Programmation

Marsh Posté le 01-05-2003 à 15:36:42    

J'aimerais savoir comment connaitre la taille d'un fichier distant sous php. filesize() ne marche pas. J'ai déja lu le post http://forum.hardware.fr/forum2.ph [...] subcat=393 mais je n'ai pas très bien compris la méthode head. Les fichiers dont je voudrais savoir la taille vont dépasser les 100mb.

Reply

Marsh Posté le 01-05-2003 à 15:36:42   

Reply

Marsh Posté le 01-05-2003 à 15:47:06    

Le plus simple serait de pouvoir mettre un script php sur le serveur où sont les fichiers, mais je suppose que c'est impossible.
 
Sinon oui, il doit y avoir moyen d'envoyer une requête dessus puis de décortiquer le header de réponse pour avoir la taille?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 15:49:33    

non effectivement c impossible de mettre un script sur le serveur distant.. Je fais un script de gestion de liens par catégorie etc.. et les liens pointent souvent sur des urls distantes..

Reply

Marsh Posté le 01-05-2003 à 15:55:29    

Reply

Marsh Posté le 01-05-2003 à 16:13:25    

mhh pas tout compris et les 2 premiers examples c pas le bon plan si t'as des fichiers de + de 100 Mb...
Et je crois pas que les suivants marchent avec des ftp..


Message édité par Nerdzus le 01-05-2003 à 16:16:00
Reply

Marsh Posté le 01-05-2003 à 16:17:20    

Bah fallait préciser que c'était pour un ftp aussi? :heink:
 
Sinon ben doit y avoir moyen d'adapter pour le protocole FTP, à toi de te plonger dans la doc?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 16:25:05    

sorry, j'y avais pas penser avant..
 
Heu sinon si je prends le 3 ème example ça me sors que le fichier que je teste fait 256 bytes alors qu'il fait 12 mb..  :heink:

Reply

Marsh Posté le 01-05-2003 à 16:28:48    

Là c'est adapté pour le protocole HTTP, ton ftp cause en? FTP
 
http://www.w3.org/Protocols/rfc959/


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 16:29:49    

non non j'ai fait un test sur un http avant.. et la taille c t pas droit ça..

Reply

Marsh Posté le 01-05-2003 à 16:31:25    

C'était quoi ton fichier ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 16:31:25   

Reply

Marsh Posté le 01-05-2003 à 16:34:20    

Reply

Marsh Posté le 01-05-2003 à 16:37:13    

ha c'est bon, je m'étais gouré dans un /..  :cry:

Reply

Marsh Posté le 01-05-2003 à 16:40:09    

Sinon celui là fonctionne aussi :
 

Code :
  1. <?php
  2. $server = "a1394.g.akamai.net";
  3. $file = "/7/1394/3235/v007/webdownload2.intervideo.com/windvdplatinum/p001/Enu/WinDVDPlatinum.exe";
  4. $fs = @fsockopen($server, 80, $errno, $errstr, 15);
  5. @fputs($fs, "HEAD $file HTTP/1.0\r\n" );
  6. @fputs($fs, "Connection: close\r\n\r\n" );
  7. while ($line = @fgets($fs,1024))
  8. {
  9. if (substr($line, 0, 16) == "Content-Length: " )
  10. {
  11.  $filesize = trim(substr($line, 16));
  12.  @fclose($fs);
  13.  break;
  14.         }
  15. }
  16. echo "The file is $filesize bytes long";
  17. ?>


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 16:41:26    

ok merci, maintenant je v me planger dans le manuel ftp..  :(

Reply

Marsh Posté le 01-05-2003 à 16:54:27    

pour un FTP c'est plus simple en fait, y a la fonction ftp_size(). Quelqun sait comment l'utiliser ?

Reply

Marsh Posté le 01-05-2003 à 17:00:39    

ftp_size($id_connection, $ficher);
 
$id_connection= id optenu grace a ftp_connect();
 
:)

Reply

Marsh Posté le 01-05-2003 à 17:00:48    

A l'arrache :
 

Code :
  1. <?php
  2. $ftp_server = "ipaddress";
  3. $ftp_user_name = "login";
  4. $ftp_user_pass = "password";
  5. $ftp_port = "21";
  6. $path = "mypath"; // eg. : "/images/";
  7. $file = "myfile.xxx";   
  8. $host_ip = gethostbyname($ftp_server);
  9. // set up basic connection
  10. $conn_id = ftp_connect($host_ip, $ftp_port);
  11. // login with username and password
  12. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  13. // Set the network timeout
  14. ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 3600);
  15. // Passive ftp mode since I am firewalled
  16. ftp_pasv($conn_id, 1);
  17. // change to directory
  18. ftp_chdir($conn_id, $path);
  19. // get file size
  20. $size = ftp_size($conn_id, urldecode($file) );
  21. ftp_close($conn_id);
  22. echo "Size of $file: ".$size." bytes";
  23. ?>


 
(peut-être virer la partie PASV si le serveur supporte pas?)


Message édité par Freekill le 01-05-2003 à 17:01:55

---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 17:15:01    

$ftp_user_name = "login";  
$ftp_user_pass = "password";  
 
je met koi là si le serveur demande pas de log et de pass ?
 
p.ex. pour ce lien :
ftp://ftp.edome.net/mirror/beyond [...] ch2225.exe
 
j'ai essayer avec anonymous anonymous, mais ça marche aps et avec rien ça marche pas non plus..


Message édité par Nerdzus le 01-05-2003 à 17:15:23
Reply

Marsh Posté le 01-05-2003 à 17:17:15    

Ben quand tu t'identifies comme anonymous en général un FTP te demande un mail comme pass? (none@nospam.org par exemple)


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 01-05-2003 à 17:22:06    

ha ok merci je savais pas, ça marche parfaitement

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed