begin process at 2012 05 31 17:00:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Server Web

 > 

Autre

 > 

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


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

lundi 29 août 2011 à 15:02:00 | Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

SOFT60

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>
<body>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
Fichier : <input name="fichier" type="file"> <input type="submit" value="Envoyer">
</form>
<br/>
<?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)
* * * * * * * * * * * * * * * * * * * * * * * * * * */
?>
</body>
</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





lundi 29 août 2011 à 18:36:28 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

alvinemambele

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!
lundi 29 août 2011 à 18:38:23 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

alvinemambele

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!
mardi 30 août 2011 à 14:03:08 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
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
mardi 30 août 2011 à 14:24:49 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

SOFT60

Bonjour Coucou747,

et merci pour cette réponse constructive.

Pat.
mardi 30 août 2011 à 14:27:03 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

coucou747

Administrateur CodeS-SourceS
Bonjour,
ça résout le problème ?
mardi 30 août 2011 à 14:37:57 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

SOFT60

re....

HO, que oui,

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

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


et ensuite ceci pour le récupérer:

Code Javascript :
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
mardi 30 août 2011 à 15:31:40 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

coucou747

Administrateur CodeS-SourceS
j'ai validé la réponse.
mardi 30 août 2011 à 18:47:16 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

SOFT60

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
mercredi 31 août 2011 à 09:16:17 | Re : Récupération d'un nom de fichier dans PHP pour faire lien dans Javascript ??

coucou747

Administrateur CodeS-SourceS
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.


Cette discussion est classée dans : fichier, file, upload, result, newname


Répondre à ce message

Sujets en rapport avec ce message

Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du exif_imagetype [ par dorian53 ] Bonjour,Je voudrais savoir quel est le type de fichier avant de l'upload.function verifimg($file) { if(exif_imagetype($file)==1 OR exif_imagetype($fil jpbm d'upload d'immge aidez moi svp !! [ par razatajm16 ] bjr alor voici mon pbm en fait , j'ai un script d'upload upload.php3dont voici la source:if ($file_name == "none") { print "Spécifier un fichier à env Erreur Upload [ par Soul EX ] Warning: move_uploaded_file(./photos/evenements/main.jpg): failed to open stream: No such file or directory in /home/users/u/*/www/maj/envoi/evenemen problème upload [ par jipe32 ] Bonjour j'ai téléchargé un script d'upload sur Comscripts.com et je l'ai adapté à mon site, mais j'ai un problème que je n'arrive pas à résoudre. ça s j'ai un bug dans mon script upload HELP!!! [ par ptiloup73 ] Voila j'ai fais un forumulaire d'upload avec un check de l'extention mais bon .. je ne comprends pas pourquoi il plante.. je débute en php donc je pen Basename & upload [ par sabou94 ] Bonjour,j'ai un probleme avec un upload de fichier : mon move_uploaded_file ne marche pas, il me renvoie false!Je crois que le probleme vient du basen upload de fichier - interdire l'up de php. [ par pipouz ] bonjour a tous voila , jai un petit formulaire d'envoi de fichiers sur mon server apache , mais je voudrais pouvoir empecher l'upload de fichier PHP,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,700 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales