- Publications
- Informatique
- Technologies
- Presse
- Dépêches
- Recherches
- Sondages
Upload avec barre de progression flash/php
Forums » Webmaster 1 2 Répondre
Onyrik11 mars 2008 à 22h15
Upload en PHP avec Flash
Mais lorsque j'execute le script il m'indique cette erreur :
Notice: Undefined index: Filedata in d:webnews_2upload.php on line 6
j'ai des connaissances moderées en php et actionscript... ou definiton ce Filedata ?
(édition: 12 mars 2008 à 21h17)
Kaio12 mars 2008 à 21h14
J'ai corrigé le code PHP dans l'article. La variable $_FILES['Filedata'] n'existe pas quand tu charges ta page php ce qui provoque cette erreur.
Donc tu dois mettre :
<?php if (isset($_FILES['Filedata']['name'])) ?>
...
Si tu écris le résultat dans un fichier texte tu verras que le tableau $_FILES contient cela :
Array
(
[Filedata] => Array
(
[name] => photo.jpg
[type] => application/octet-stream
[tmp_name] => c:/wamp/tmpphp6F.tmp
[error] => 0
[size] => 49401
)
)
Ce Filedata existera donc seulement quand tu auras uploadé ton fichier.
J'ai également modifié le fichier swf. Il envoie maintenant les données vers la page upload.php.
Tu peux modifier ce nom et les autres paramètres en éditant le fichier .fla
++
Onyrik13 mars 2008 à 11h47
J'ai juste un probleme lorsque j'envoi un fichier qui depasse 2mo. le transfert sous flash s'execute correctement mais l'image n'est pas uploadé sur le serveur.
Ou indiquer la taille maximale limite ?
(édition: 13 mars 2008 à 11h49)
Kaio13 mars 2008 à 19h21
Par défaut elle est limitée à 2 Mo.
Onyrik16 mars 2008 à 22h49
J'ai encore une dernière question :
comment donner une valeur d'un echo de la page upload.php au name_txt.text du script flash ?
par exemple si dans ma page php j'ai : echo "erreur" pour l'afficher dans la texbox de mon script flash je devrais ecrire name_txt.text = load("upload.php"); ?!
merci de m'éclairer...
(édition: 16 mars 2008 à 22h49)
Onyrik19 mars 2008 à 11h05
Peut être je me fais mal comprendre...
Kaio19 mars 2008 à 20h41
Si j'ai bien compris ce que tu veux faire, c'est à dire récupérer des données depuis un script php pour les utiliser dans ton application flash, tu peux essayer cette fonction :
// charger des variables depuis PHP
myData = new LoadVars()
myData.load("http://127.0.0.1/upload/upload.php?start")
myData.onLoad = function(succes){
if(succes){
name_txt.text = this.txt
} else trace("Error loading data")
}
Dans mon fichier upload.php, j'ai écris ça :
<?php function envoi($var, $val)
{
echo $var."=".utf8_encode($val);
}
if(isset($_GET['start']))
{
envoi('txt','contenu PHP');
die();
} ?>
Evidemment tu peux envoyer plusieurs variables, en faisant une boucle dans la fonction envoi()
Avec tout ça, lorsque tu lances ton appli flash dans ta page html, elle se charge avec la valeur "contenu PHP"...
++
Onyrik20 mars 2008 à 08h19
Voici mon code de la page "upload.php" :
<?PHP
$target_path = "uploads/";
$name_file = $_FILES['Filedata']['name'];
$target_path = $target_path . basename( $name_file);
function envoi($var, $val)
{
echo $var."=".utf8_encode($val).$i;
}
if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $target_path))
{
if(isset($_GET['start']))
{
envoi('txt',' envoi reussi');
die();
}
}
else
{
envoi('txt','erreur');
die();
} ?>
et mon code flash....
myData = new LoadVars()
myData.load("upload.php?start")
myData.onLoad = function(succes){
if(succes){
name_txt.text = this.txt
} else trace("Error loading data")
}
(édition: 20 mars 2008 à 12h24)
Kaio20 mars 2008 à 13h28
Une fois que le fichier est uploadé sur le serveur, en fait tu voudrais vérifier via PHP qu'il a bien été envoyé, et l'afficher dans l'application flash, si j'ai bien compris.
Il te suffit de rajouter une ligne de code dans la source flash pour modifier cette fonction:
// Action when upload is finished
list_obj.onComplete = function(){
//name_txt.text = "Le colis est livré.";
// verification sur le serveur via PHP
myData.load("http://127.0.0.1/upload/upload.php?verif="+name_txt.text)
my_pb._visible = false;
}
Dans ta page php, tu rajoute également la fonction qui vérifie l'existence du fichier sur le serveur local, ce qui donne :
<?php if(isset($_FILES['Filedata']['name']))
{
$uploadDir = "./";
$uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
function envoi($var, $val)
{
echo $var."=".utf8_encode($val);
}
if(isset($_GET['start']))
{
envoi('txt','Sélectionner votre fichier');
die();
}
if(isset($_GET['verif']))
{
// on verifie l'existence du fichier
if(file_exists(utf8_decode($_GET['verif'])))
{envoi('txt','Le colis est arrivé.');}
die();
} ?>
++
(édition: 20 mars 2008 à 13h33)
Forums » Webmaster 1 2 Répondre