Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ?? [Résolu]

Messages postés
7
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
2 septembre 2011
- - Dernière réponse : coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
- 31 août 2011 à 09:16
Bonjour à tous,
(Débutant en prog Php et Js)
j'utilise le script de cette page pour envoyer vers le ftp, et incrémenter au passage le nom de mes fichiers.
jusque la , tout va bien.
-------------------------------------
Le script (provenant d'aileurs de ce site)
-------------------------------------
<?php
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
* Upload - floptwo :
* Il s'agit d'un script qui permet d'uploader des
* fichiers sur son serveur via un formulaire.
* Sous la forme d'une simple fonction, il permet
* d'envoyer le fichier selectionné dans un dossier
* spécifique, de limiter le poids des fichiers à
* envoyer, si l'option est activée, renommer le
* fichier envoyer s'il en existe déjà un du même nom
* mais de poids différent.
* (si "fichier.ext" existe il sera renommer : "fichier(1).ext")
*
* Script réalisépar floptwo (floptwo@gmail.com)
* * * * * * * * * * * * * * * * * * * * * * * * * * */
function upload ($http_post_file, $file_folder, $file_maxSize, $file_autoRename)
{
// Ici on déclare queleque variables qui nous serons utiles
/* $upload : Après tous les tests nous permettra de savoir
* si on upload ou pas. Par défaut il est faux (false) pour
* éviter un : ...else {$upload = false;} et éviter un eventuel
* "error Variable undefinded...". */
$upload = false;
/* $_result : Variable qui contient un numero qui sert de
* code d'erreur. Elle nous permettra d'afficher des
* messages précis définissant les erreurs.
* Par défaut 2 pour éviter un : ...else {$_result = 2;}
* et éviter un eventuel "error Variable undefinded...".*/
$_result = 2;
/* $file_newName : On initialise la variable qui
* contiendra le nouveau nom du fichier s'il à dû
* être renommé et éviter un eventuel
* "error Variable undefinded...".*/
$file_newName = '';
// Si l'adresse d'un fichier a bien été saisie
if (!empty($http_post_file) && !empty($http_post_file['name']))
{
/* $http_post_file correspond à $HTTP_POST_FILES['fichier']
* qui est un tableau contenant les information sur le fichier posté. */
$file_name = $http_post_file['name']; // nom du fichier
// $file_type = $http_post_file['type']; // type du fichier pourrai servir a un filtre pour n'envoeyr qu'un certain type de fichier
$file_size = $http_post_file['size']; // poids du fichier
$file_tmp = $http_post_file['tmp_name']; // adresse qu fichier temporaie sur le serveur
$file_adresse = $file_folder.'/'.$file_name; // location du fichier
// Si le poids du fichier est inférieur ou égal au poids autorisé
if ($file_size <= $file_maxSize)
{
// Si un fichier du meme nom n'existe pas deja
if (!file_exists ($file_adresse))
{
$file_newName = $file_name; // il gardera alors le nom de départ
$upload = true; // tout est ok on peut uploader
$_result = 0; // Code pour un envoie simple et effectuer
}
// Sinon Si le fichier existe et qu'on autorise le renommage automatique
elseif (file_exists ($file_adresse) && $file_autoRename)
{
// A l'aide d'expressions régulières on extrait :
$expR = eregi("^(.*)[.](.*)$" , $file_name , $expRa); // le nom et l'extension
$expR = eregi("^(.*)[(]([0-9]*)[)]$" , $expRa[1] , $expRb); //verifie si le fichier ne se termine pas déja par (x)
$file_num = $expRb[2]; // le numero deja affecté. Le x dans ficiher(x).ext
$exist_file_info = stat ($adress_file); //relève des information sur le fichier déja existant
$exist_file_size = $file_info[7]; // relève le poids en octets
// Si le fichier à envoyer n'a pas le même poids que le fichier déjà présent et du même nom
if ($exist_file_size != $file_size)
{
// si le fichier a deja un compteur x >>> fichier(x).ext
if (!empty($expRb[2]))
{
$file_num++; // On incremente le compteur
$file_newName = $expRb[1].'('.$file_num .').'.$expRa[2];
// Tant qu'il y a un fichier du nouveau nom choisi on incrémente
while (file_exists($file_folder.'/'.$file_newName))
{
$file_num++;
$file_newName = $expRb[1].'('.$file_num .').'.$expRa[2];
}
}
// si le fichier n'a pas encor de compteur on lui en creer un
else
{
$file_newName = $expRa[1].'(1).'.$expRa[2];
// Tant qu'il existera un fichier avec le compteur qu'on souhaite lui attribuer on incrémente le compteur
while (file_exists($file_folder.'/'.$file_newName))
{
$file_num++;
$file_newName = $expRa[1].'('.$file_num .').'.$expRa[2];
}
}
$upload = true; // tout est ok on peut uploader
$_result = 1; // Code pour un envoie dans le cas d'un fichier déja existant et renommer
}
// Sinon, si le fichier à envoyer a le même poids que le fichier déjà présent et du même nom
else
{
// Pas de $upload = true; le fichier existe déjà
$file_newName = $file_name; // il gardera alors le nom de départ
$_result = 5; // Code pour un fichier existant déjà
}
}
// Sinon, si le fichier existe déjà mais que l'on n'autorise pas le renommage automatique
else
{
$_result = 4; // Code erreur d'un fichier déjà existant
}
}
// Sinon, si le poids du fichier est supérieur au poids autorisé
else
{
$_result = 3; // Code erreur d'un poids fichier supérieur au poids autorisé
}
}
// Si tout est ok et que le $upload = true
if ($upload)
{
// Si la copie échoue quand meme
if (!copy($file_tmp , $file_folder.'/'.$file_newName))
{
$_result = 6; // Code erreur
}
}
// Dans un tableau on met le code obtenu et le nouveau nom du fichier
$upload_result = array($_result , $file_newName);
return $upload_result; //on retourne le tableau
}
?>
<html>
<head>
<title>upload - floptwo</title>
</head>

<form enctype="multipart/form-data" action="" method="post">

Fichier :
</form>


<?php
if (isset($HTTP_POST_FILES['fichier']))
{
$file_folder = '.';
$file_name = $HTTP_POST_FILES['fichier']['name'];
// On récupère le tableau contenant le resultat de l'upload
$upload_result = upload ($HTTP_POST_FILES['fichier'], $file_folder , $_POST["MAX_FILE_SIZE"], true);
// Affichage des erreur corespondantes au code obtenu
switch($upload_result [0])
{
case '0' :
echo 'Le fichier "' , $upload_result [1] , '" a bien été envoyé.'; break;
case '1' :
echo 'Un fichier nommé "' , $file_name , '" existait déjà. Le fichier a été renommé "' , $upload_result [1] , '" puis envoyé.'; break;
case '2' :
echo 'Aucun fichier n\'a été soumis.'; break;
case '3' :
echo 'Le fichier supérieur à la taille limite autorisée.'; break;
case '4' :
echo 'Un fichier nommé "' , $upload_result [1] , '" existe déjà.'; break;
case '5' :
echo 'Un fichier identique nommé "' , $upload_result [1] , '" existe déjà.'; break;
case '6' :
echo 'Une erreur inconnue est survenue.'; break;
}
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
* script réalisé par floptwo (floptwo@gmail.com)
* * * * * * * * * * * * * * * * * * * * * * * * * * */
?>

</html>

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

en tant que débutant en Php et Js je ne vois pas comment faire pour mettre le nom du fichier renommé : " $upload_result [1] "
qui est le serveur distant, dans la commande suivante en Javascript et sert à recharger le dit fichier pour le faire exécuter à KmlLayer ?????
(pour le moment j'ai un lien en clair...... avec une Fonction comme ci dessous)
------------------------
// Charge le fichier de prevision Kml
function kml() {
var ctaLayer = new
google.maps.KmlLayer('http://toto.truc.fr/moi/cla/xxxx.kml');
ctaLayer.setMap(map);
}
-------------------

il faudrait donc que "$upload_result [1]"
prenne la place de xxxx.kml avec le lien qui est devant.....

Merci d'avance.
Pat
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
3
Merci
Bonjour,

function kml() {
var ctaLayer = new
google.maps.KmlLayer('http://toto.truc.fr/moi/cla/<?php echo $upload_result[1]; ?>');
ctaLayer.setMap(map);
}

alvinemambele, ton message ne sert strictement à rien.

Cordialement,

Maxime

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de coucou747
Messages postés
73
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
31 mai 2013
2
0
Merci
slt veuillez bien maitre tes code entre la balise
[code=php ]"" et ""/code


et prend bien soin de crocher qu'il n y est des espace vide entre crocher...


Un orateur trop long est comme une horloge qui sonne les minutes!
Commenter la réponse de alvinemambele
Messages postés
73
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
31 mai 2013
2
0
Merci
veuillez utiliser cet icone situer juste audéssus de la où tu saisie le texte
voici l'icone



Un orateur trop long est comme une horloge qui sonne les minutes!
Commenter la réponse de alvinemambele
Messages postés
7
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
2 septembre 2011
0
Merci
Bonjour Coucou747,

et merci pour cette réponse constructive.

Pat.
Commenter la réponse de SOFT60
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
0
Merci
Bonjour,
ça résout le problème ?
Commenter la réponse de coucou747
Messages postés
7
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
2 septembre 2011
0
Merci
re....

HO, que oui,

j'avais un bout de Php qui me fabriquait un fichier "prevision.php" dans lequel je mettais le nom.

<markers><marker nom="13(1).kml"/></markers>


et ensuite ceci pour le récupérer:

function kml() {
downloadUrl("prevision.php", 
function(xmlDoc) {
var markers = xmlDoc.documentElement.getElementsByTagName("marker");
document.getElementById("path").innerHTML ="";		
for (var i = 0; i < markers.length; i++) {
var nom_prev = markers[i].getAttribute("nom");


et donc maintenant c'est direct.....

Pat
Commenter la réponse de SOFT60
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
0
Merci
j'ai validé la réponse.
Commenter la réponse de coucou747
Messages postés
7
Date d'inscription
dimanche 7 décembre 2008
Statut
Membre
Dernière intervention
2 septembre 2011
0
Merci
suite,

et maintenant comment faire pour supprimer le tracé KML qui a été fait par :
-------
function kml() {
var ctaLayer = new
google.maps.KmlLayer('http://toto.truc.fr/moi/cla/<?php echo $upload_result[1]; ?>');
ctaLayer.setMap(map);
}

Merci

pat
Commenter la réponse de SOFT60
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
0
Merci
aucune idée, à mon avis, tu devrais poster ça sur javascriptfr.

Lire la doc de maps me semble aussi être une bonne idée, c'est un turc assez spécifique.
Commenter la réponse de coucou747