如何使用FileReference Upload发送另一个变量?

时间:2009-07-30 14:06:37

标签: flex flex3

我使用上传功能遇到了文件引用类的问题。 我想用folderLocation发送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);
}

在PHP中,我用它来获取文件并上传

$folder = $_POST['folder'];

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

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

但是如何通过“上传参考”发送folder

2 个答案:

答案 0 :(得分:2)

我认为,由于您FileReference需要URLRequest,因此您可以使用URLRequest对象通过flash.net.URLVariables本身捎带该信息。

我没时间测试这个,但你试过了吗?

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

那应该让你这样做:

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

答案 1 :(得分:1)

您可以做的最简单的事情就是通过上传功能中的get标头发送它

所以代码如下所示

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

fileReference.upload(urlRequest);

然后在php脚本中你只需使用

$_GET['extraValue']
$_GET['valueVarB']