Tester existance d'un fichier

Signaler
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
-
Bonsoir,

Je suis en train de créer un site qui donne des liens pour des fichiers à télécharger à partir d'autres sites mon problème est que je n'arrive pas à tester la présence de ses fichiers pdf ou zip

la fonction $fp = fsockopen($server,80); me renvoi toujours qu'elle n'accéde pas au serveur. Je suis en train de me demander si cette foonction permet bien d'ouvrir des fichiers style pdf et zip ?

Pourriez vous m'éclairer un peu ? si vous avez une solution

Merci d'avance
Bonne soirée
Ludovic

6 réponses

Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Salut,
si ton fichier est sur ton serveur tu fais :
<?php
if(is_file('./monfichier.pdf')){
// ok
}else{
// Pas là ^^
}

// Ou
if(file_exists('./monfichier.pdf')){
// ok
}else{
// Pas là ^^
}
?>
is_file est plus rapide ;-)

Et si le fichier n' est pas en local :
<?php
$fichier = 'http://www.immortalpc.free.fr/index.php';// Adresse du fichier
$read_file = @fopen($fichier,'r');
if($read_file){
echo '
Le fichier ',$fichier,' existe.
';//Il existe ;-)
}else{
echo '
Le fichier ',$fichier,' n\' existe pas.
';// Il n'existe pas :'(
}
@fclose($read_file);
?>
@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007

bonjour,
merci pour ton aide je viens de tester la fonction fopen car les fichiers se trouvent sur des serveurs distants cela fonctionne mais cela est très très long car c'est des fichiers de plusieurs Mo.
j'ai testé avec un simple fichier txt c'est très rapide, il n'y a pas une astuce pour que cela y aille plus vite :(
encore merci
bonne journée
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Voilà ;-)

<?php
// Adresse à changer
$serveur = 'http://immortal-pc.info/1.html';

//Parse url
$web = parse_url($serveur);

if(!$fp = fsockopen($web['host'], 80, $num_erreur, $msg_erreur, 30)){
exit('Impossible de se connecter au serveur !!!
'."\r\n"
.'Numéro de l&#39; erreur: '.$num_erreur.'
'."\r\n"
.'Message renvoyé: '.$msg_erreur.'
'."\r\n");
}

fputs($fp, 'GET '.$web['path']." HTTP/1.1\r\n");
fputs($fp, 'Host: '.$web['host']."\r\n");
fputs($fp, "Connection: close\r\n\r\n");

$tmp = fgets($fp, 4096);
if(eregi('404 Not Found', $tmp) || eregi('Not Found', $tmp) || eregi('404', $tmp)){
echo '
Le fichier ',$web['path'],' n&#39; existe pas !
',"\r\n";
}else{
echo '
Le fichier ',$web['path'],' existe pas !
',"\r\n";
}

fclose($fp);
?>

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
22
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007

bonjour,
merci pour ton aide mais cela ne fonctionne toujours pas à croire que je demande l'impossible :(
voici l'erreur qui me met :
Impossible de se connecter au serveur !!!
Numéro de l' erreur: 110
Message renvoyé: Connection timed out

pour info l'une des adresses à tester est la suivante : http://support.panasonic.be/shop/data/User_manual/VacuumCleaner/IM_MC-E861_E862_E863_E864_E865_NL_FR.pdf

encore merci pour tout
@+
ludo
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Re,
désolé pour la faute d' orthographe :
echo '
Le fichier ',$web['path'],' existe !
',"\r\n";
J 'avais oublié d' enlever le pas :$
Comme quoi faut pas faire des copié collé ^^

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Re,
je comprend pas en local c' est nikel mais sur un serveur ça marche pas :$
Surement un réglage au niveau du fichier php.ini
Si il y en a un qui as une idée :S

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.