Récupérer l'url du fichier uploadé

Petit nouveau ! | 7 Messages

26 juin 2015, 09:14

bonjour,

j 'essaye de coder un petit site en local pour passer le temps je suis totalement novice

j'ais un script d'upload ( merci AB ) qui upload mes fichiers dans un dossier >> http://localhost/upload/destination_upl ... upload.exe

j'utilise $_get pour générer le titre de la page etc...

http://localhost/upload/fichier.php?q=fichierupload.exe

<title><?php echo ($_GET["q"]) ?></title> ce qui donne <title> fichierupload.exe</title> bref je vous apprend rien

je voudrais connaitre la solution pour récupérer l'url du fichier 'fichierupload.exe' si le fichier existe et si le fichier n'existe pas ou plus qu' il me met l' url de l' index

merci d'avance
Modifié en dernier par Ryle le 26 juin 2015, 09:35, modifié 1 fois.
Raison : Merci d'utiliser des titres explicites - nous savons que tu as besoin d'aide puisque tu postes ici ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 juin 2015, 09:39

Bonjour,

Tu peux utiliser la fonction file_exists() en précisant le chemin vers le fichier sur le serveur (celui que tu as indiqué quand tu as du faire le move_upload_file() pour récupérer le fichier uploadé).

Avec une structure if/else tu pourras ainsi tester l'existence du fichier et proposer un lien vers celui-ci, ou un lien vers ta page d'index ou d'erreur ou autre :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 7 Messages

26 juin 2015, 10:08

merci pour votre aide j'ais donc fait

<?php
$filename = 'http://localhost/upload/Destination_Upload/fichier.exe';

if (file_exists($filename))
{
echo "Le fichier $filename existe.";
} else
{
echo "Le fichier $filename n'existe pas.";
}
?>

le fichier existe bien mais la fonction me renvois qu'il n'existe pas, est-il possible de remplacer fichier.exe par la variable dans mon url ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 juin 2015, 11:29

C'est tout à fait possible, mais il faut faire attention à la différence entre les chemins sur le système de fichier (donc sur le disque dur) et le chemin du serveur web (qui se base uniquement sur ton site web).

Il faudrait donc préciser le chemin entre le script php que tu appels via l'url et le fichier sur le serveur
Par exemple :
$filename = '../../upload/Destination_Upload/fichier.exe';
si pour accéder au repertoire upload depuis ton script il faut remonter de deux niveaux ... (chemin à ajuster en fonction de ton arborescence de fichier donc :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 7 Messages

26 juin 2015, 11:40

merci ça fonctionne :)

il me reste plus cas trouver la solution pour rentrer la variable dans le chemin d'accès

Mammouth du PHP | 688 Messages

26 juin 2015, 14:03

$chemincomplet = '../../upload/Destination_Upload/'.$filename;

Petit nouveau ! | 7 Messages

27 juin 2015, 13:24

bonjour et merci pour vos réponses

quand je fais ça fonctionne
$nom = 'delegate_execute.exe';
$filename = '../upload/Destination_Upload/'.$nom;


if (file_exists($filename)) 
{
echo "Le fichier $filename existe.";
} else 
{
echo "Le fichier $filename n'existe pas.";
}

mais quand j'essaye de récupérer la variable dans $nom = $_GET['q'];
j'ais un message d'erreur j'ais beau fouiller les cours qui traîne sur le net je trouve pas la solution.

résolut pour un histoire de majuscule...
merci d'avance pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 juin 2015, 12:00

Et c'est quoi ce message d'erreur ? :)

Est-ce que $_GET['q'] contient bien la valeur "delegate_execute.exe" ou tout autre nom de fichier présent dans ton répertoire d'upload ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...