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

Résolu
SOFT60 Messages postés 7 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 2 septembre 2011 - 29 août 2011 à 15:02
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre 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

9 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 août 2011 à 14:03
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
3
alvinemambele Messages postés 72 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 31 mai 2013 15
29 août 2011 à 18:36
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!
0
alvinemambele Messages postés 72 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 31 mai 2013 15
29 août 2011 à 18:38
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!
0
SOFT60 Messages postés 7 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 2 septembre 2011
30 août 2011 à 14:24
Bonjour Coucou747,

et merci pour cette réponse constructive.

Pat.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 août 2011 à 14:27
Bonjour,
ça résout le problème ?
0
SOFT60 Messages postés 7 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 2 septembre 2011
30 août 2011 à 14:37
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 août 2011 à 15:31
j'ai validé la réponse.
0
SOFT60 Messages postés 7 Date d'inscription dimanche 7 décembre 2008 Statut Membre Dernière intervention 2 septembre 2011
30 août 2011 à 18:47
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 août 2011 à 09:16
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.
0
Rejoignez-nous