areuh
Invité n'ayant pas de compte PHPfrance
15 juin 2007, 21:47
Bonsoir,
Bé, heureusement que le sujet n'est pas résolu.
J'ai un gros probleme de comprehension avec mon script PHP d'upload de fichier.
je vous mets le code et vous explique.
<?php
/*
FICHIER PHP QUI COMMUNIQUE AVEC AVECLE FICHIER TEXTE ET L'IMAGE CLE N°3 DE L'ANIMATION FLASH
*/
// Fonction pour parser les variables vers le swf (cf: media-box.net)
function Parse($variable,$valeur) {
echo "&".$variable."=".utf8_encode(urlencode($valeur));
}
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// CORRESPONDANCE DES VARIABLES ENTRE FLASH ET LE PHP ---- PHP ET TXT
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// - le nom du user (obligatoire pour creer et/ou lire le fichier texte)
$nomuser= $_POST['nomuser'];
// extension autorisee
$type= array ('jpg', 'jpeg', 'jpe', 'gif', 'png');
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// LECTURE DU FICHIER TEXTE, ON RECUPERE LIGNE PAR LIGNE POUR METTRE DANS UN TABLEAU
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// fichier cible
$fichier_cible= "log_".$nomuser.".txt"; //"log_areuh.txt";
$texte = file($fichier_cible) ;
$tab= array();
$i= 0;
foreach ($texte as $line_num => $texte) {
$texte= rtrim($texte);
// echo 'Ligne No '. $line_num.': '.$texte.'<br />';
array_push($tab, $texte);
$i++;
}
// echo "<br>";
// echo $line_num." entrees";
// echo "<br><br>";
// print_r($tab);
// echo "nbre de i: ".$i;
// echo "<br><br>--------<br> affichage des 3 dernieres variables quelque soit le contenu du fichier de log<br>";
$fin_inter= $i- 1;
// echo $fin_inter;
$debut_inter= $fin_inter- 3;
// echo $debut_inter;
// affectation des variables
$date= $tab[$fin_inter- 3];
$utilisateur= $tab[$fin_inter- 2];
$sous_repertoire= $tab[$fin_inter- 1];
// affichage des variables que renvoie PHP a Flash
Parse("date_test", $date);
Parse("utilisateur_test", $utilisateur);
Parse("repertoire_test", $sous_repertoire);
// repertoire de destination des images
$uploaddir= "images/".$utilisateur."/".$sous_repertoire."/";
Parse("chemin", $uploaddir);
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// TRAITEMENT D'UPLOAD
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
if($_FILES['Filedata']['name']) {
// recupere l'extension du reste du nom des fichiers
$extension_fichier= strtolower( array_pop( explode(".", $_FILES['Filedata']['name'])));
// cree une variable date qui sera ajoutee au nom de chacun des fichiers
$date= strtolower(date('dS_F_Y_h_i_s_A_'));
// si cette extension ne se trouve pas dans notre tableau $type
if(!in_array($extension_fichier, $type)) {
// echo " extension non autorisee !!!";
exit; // on stop le traitement
}
// $uploadfile= str_replace(" ", "_", $uploaddir.basename( $date.$_FILES['Filedata']['name']));
$uploadfile= $uploaddir.basename( $date.$_FILES['Filedata']['name']);
// Parse("cause", $nbrefichiers);
// echo "Upload en cours...";
if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadfile)) {
// echo " les fichiers ont bien ete uploades !!!";
// Parse("cause", " les fichiers ont bien ete uploades !!!");
return true;
}
else {
// Parse("cause", " un probleme est apparu !!!");
//echo " Un probleme est apparu !!!";
return false;
}
}
else {
// Parse("cause", " Autres raisons !!!");
// echo " Vous devez choisir au moins un fichier !!!";
return false;
}
?>
Voilà, avant la partie TRAITEMENT D'UPLOAD, j'affecte des valeurs issues d'un fichier txt à des variables. Pas de problème, j'affiche pour vérifier les valeurs dans Flash (grâce à la fonction Parse)
et c'est nickel.
Je definis donc le chemin de destination des fichiers qui doivent être uploadés en fonction des variables au dessus ($utilisateur et $sous_repertoire).
Mais non ça veut pas télécharger dans ce dossier rien a faire.
ça télécharge dans le repertoire "images".
j'ai beau inclure les variables dans le chemin de destination mais le cript refuse de les prendre en compte.
les dossiers st en 0777, je suis en local, rien à faire.
Si quelqu'un pouvait me donner la solution, je crois que je vais craquer.
En vous remerciant.
a+
areuh