2009-07-30 8 views
1

J'ai un problème avec la classe filereference en utilisant la fonction de téléchargement. Je veux envoyer la variable folderLocation avec fileReference.upload(). Ci-dessous, j'essaie de décrire ma stratégie.Comment envoyer une autre variable avec FileReference Upload?

var folderLocation : String = "photos/myUniqueFolder/"; 

private var serverSideScript:String = "http://localhost/project/phpFlexMechanism/upload.php"; 
urlRequest = new URLRequest(serverSideScript); 

fileReferenceList.addEventListener(Event.SELECT, fileSelectedHandler); 

private function fileSelectedHandler(event:Event):void { 
// upload the file to the server side script 
     fileReference.addEventListener(Event.COMPLETE, uploadCompleteHandler); 
     fileReference.upload(urlRequest); 
} 

En PHP j'utiliser pour obtenir le fichier et uploadés

$folder = $_POST['folder']; 

$tempFile = $_FILES['Filedata']['tmp_name']; 
$fileName = $_FILES['Filedata']['name']; 
$fileSize = $_FILES['Filedata']['size']; 

move_uploaded_file($tempFile, "../user/$folder/uploadImages/" . $fileName); 

Mais comment puis-je envoyer le folder à travers le « télécharger référence »?

Répondre

2

Je pense que, puisque vous FileReference a besoin d'un URLRequest, vous seriez en mesure de ferroutage que par lui-même URLRequest en utilisant l'objet flash.net.URLVariables.

Je n'ai pas eu le temps de tester, mais vous avez essayé:

// put this right after you instantiate urlRequest; 
var urlVars:URLVariables = new URLVariables(); 
urlVars.targetFolder  = folderLocation; 
urlRequest.method  = "post"; 
urlRequest.data   = urlVar; 

Cela devrait vous laisser faire:

//replace your last line with these two. 
$folder = $_REQUEST[ "targetFolder" ]; 
move_uploaded_file($tempFile, "../user/$folder/uploadImages/" . $fileName); 

en PHP.

+0

Désolé pour la fin.Merci beaucoup pour votre réponse. – Mahedi

1

la meilleure chose que vous pouvez faire est d'envoyer simplement avec une entête get dans la fonction de téléchargement

si le code se présente comme suit

private var serverSideScript:String = "http://localhost/project/phpFlexMechanism/upload.php?extraVar=value&extraVarB=value2"; 

fileReference.upload(urlRequest); 

puis dans le script php que vous utilisez juste

$_GET['extraValue'] 
$_GET['valueVarB'] 
+0

Merci beaucoup pour votre réponse. Désolé pour la fin. – Mahedi

Questions connexes