Como posso enviar outra variável com FileReference upload?
-
05-07-2019 - |
Pergunta
Eu tenho um problema com a classe FileReference usando a função de upload.
Eu quero enviar a variável folderLocation
com fileReference.upload()
.
Abaixo eu tento descrever a minha estratégia.
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);
}
No PHP eu uso isso para obter o arquivo e enviados
$folder = $_POST['folder'];
$tempFile = $_FILES['Filedata']['tmp_name'];
$fileName = $_FILES['Filedata']['name'];
$fileSize = $_FILES['Filedata']['size'];
move_uploaded_file($tempFile, "../user/$folder/uploadImages/" . $fileName);
Mas como eu posso enviar o folder
através da "referência de upload"?
Solução
Gostaria de pensar que, desde que você FileReference
necessidades um URLRequest
, você seria capaz de piggy back essa informação através do próprio URLRequest
usando o objeto flash.net.URLVariables
.
Eu não tive tempo para testar isso, mas você já tentou:
// put this right after you instantiate urlRequest;
var urlVars:URLVariables = new URLVariables();
urlVars.targetFolder = folderLocation;
urlRequest.method = "post";
urlRequest.data = urlVar;
Isso deve deixá-lo fazer:
//replace your last line with these two.
$folder = $_REQUEST[ "targetFolder" ];
move_uploaded_file($tempFile, "../user/$folder/uploadImages/" . $fileName);
em PHP.
Outras dicas
a coisa mais fácil que você pode fazer é apenas enviá-lo através de cabeça get na função de upload
para os olhares de código da seguinte maneira
private var serverSideScript:String = "http://localhost/project/phpFlexMechanism/upload.php?extraVar=value&extraVarB=value2";
fileReference.upload(urlRequest);
, em seguida, o script php que você acabou de usar
$_GET['extraValue']
$_GET['valueVarB']