Forum Clubic

Récuperer les infos d'un fichier uploadé via Flash dans formulaire

Bonsoir à tous,

Je suis actuellement sur la création d’un site internet communautaire.
En faites ce qui nous intéresse ici, c’est qu’il y a une partie “échange” où les utilisateurs pourront s’échanger des fichiers musicaux en les postant.

Je m’explique :
Mon but étant de créer un formulaire avec les champs suivants (artiste, titre, catégorie) muni d’un fichier swf pour l’upload.

voici la source de mon swf :


import flash.net.FileReference;
 
var file_fr:FileReference = new FileReference();
var list_obj:Object = new Object();
file_fr.addListener(list_obj);
var my_pb:mx.controls.ProgressBar;
 
// Utilisation en mode manuel
// pour lui dire quoi afficher
my_pb.mode = "manual";
// Some makup for the progress bar
my_pb.conversion = 1024;
my_pb.labelPlacement = "top";
my_pb.label = "%3%% Uploadé (%1Ko/%2Ko)";
// The progress bar will be visible when we neet it
my_pb._visible = false;
 
 
// type de fichiers acceptables
// j'ai modifié la source pour accepter toutes les extensions
// il est plus prudent de vérifier le type du fichier en php...
browse_butn.clickHandler = function(){
file_fr.browse([{description: "tous", extension: "*"}]);
}
 
// Afficher le nom du fichier
// Appel de la page d'upload php
list_obj.onSelect = function(){
name_txt.text = file_fr.name;
file_fr.upload("upload.php");
}
 
// Action pendant l'upload
// Affichage de la barre de progression
list_obj.onProgress = function (bytesTotal, bytesLoaded){
my_pb._visible = true;
my_pb.minimum = 0;
my_pb.maximum = file_fr.size;
my_pb.setProgress(bytesLoaded, my_pb.maximum);
}
 
// Action quand l'envoi est terminé
list_obj.onComplete = function(){
name_txt.text = "Votre fichier a été envoyé";
my_pb._visible = false;
}
 
 
// Autres fonctions
list_obj.onCancel = function(){
name_txt.text = "Annulé";
}
 
list_obj.onIOError = function(fileRef){
name_txt.text = "IO error with " + fileRef.name;
}
 
list_obj.onSecurityError = function(fileRef, error){
name_txt.text = "Security error with " + fileRef.name + ":" + error;
}
 
list_obj.onHTTPError = function(fileRef:FileReference, error:Number){
name_txt.text += "HTTP error: with " + fileRef.name + ":error #" + error;
}

et maintenant la source de mon fichier upload.php (requit par le fichier swf)


<?php if (isset($_FILES['Filedata']['name'])) {
 
   $uploadDir = "uploads/";
 
   $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
 
   move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
 
}  ?>

Voilà.
Ce que je cherche à faire c’est récupérer l’adresse de mon fichier uploadé,
afin de l’enregistrer dans une bdd, pour pouvoir l’afficher dans un tableau type (artiste-titre-TELECHARGER)
et évidement quand on clique sur télécharger, le fichier se télécharge =)

J’ai déjà effectué quelques recherches sur le net, et j’ai trouver quelqu’un qui cherchait à faire la même chose, malheureusement il est rester sans réponse…

Voici l’idée qu’il avait eu, peut être que cela pourra vous éclairez afin de mieux me répondre =)

Voilà ce à quoi il avait penser. Malheuresement je ne sais pas si ça marche et je ne sais pas le faire car je suis encore novice en programmation php…

Si quelqu’un pouvait m’aider, je lui en serait vraiment très reconnaissant…
En espérant être tomber sur le bon forum… Bonne soirée à tous !

voilà ce que j’ai fait :

<?php
if (isset($_FILES['Filedata']['name'])) {

   $uploadDir = "uploads/";
   $size = $_FILES['Filedata']['size'];
   $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
   $fichier = basename($_FILES['Filedata']['name']);
   move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
$date = date("d/m/Y");
$heure = date("H:i:s");

echo "<form name=\"form1\" action=\"upload.php?action=addfile\" method=\"post\">
<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">
<tr>
<td width=\"180\"><strong>artiste</strong></td>
<td><input id=\"artiste\" maxLength=\"100\" size=\"45\" name=\"artiste\"></td>
</tr>
<td width=\"180\"><strong>titre</strong></td>
<td><input id=\"titre\" maxLength=\"100\" size=\"45\" name=\"titre\"></td>
</tr>
<td><object type=\"application/x-shockwave-flash\" data=\"fileUpload.swf\"> 
<param name=\"movie\" value=\"fileUpload.swf\" /> 
<param name=\"wmode\" value=\"transparent\" /> 
<p>votre naviguateur ne supporte pas cette animation flash</p> 
</object></td>
<tr>
<td><B>Publier&nbsp;le:</B>&nbsp;</td>
<td><input type=\"hidden\" id=\"date\" maxLength=\"100\" size=\"45\" name=\"date\" value=\"$date &agrave; $heure\"></td>
<tr>
<td valign=\"top\">&nbsp;</td>
<td><input name=\"Submit\" type=\"submit\" value=\"Envoyer\"></td>
<tr></table></form>";




function addfile ()
{
$artiste = addslashes($_POST['artiste']);
$titre = addslashes($_POST['titre']);
$date = addslashes($_POST['date']);

mysql_query("INSERT INTO test (id,artiste,titre,date,fichier,size) VALUES('', '$artiste', '$titre', '$date', '$fichier', '$size')");

echo "<center><strong>file added.</center></strong>
<meta http-equiv=\"refresh\" content=\"2; url=test2.php\">";
}



$action = $_GET['action'];

switch ($action)
{ 

case'addfile': 
addfile ();
break;
}
?>

Evidement tout ça ne fonctionne pas :s
Tout est écrit dans ma tabble à part évidement $size et $fichier…
Edité le 10/10/2008 à 03:33

up!

Personne ne peut donc m’aider ? :frowning: