AS3 URLRequest POST有时会变成GET请求

时间:2015-04-02 13:52:39

标签: php .htaccess actionscript-3

我们的用户可以使用从Flash AS3到PHP然后到我们的Web服务器的URLRequest POST方法将文件上传到我们的服务器。我们最近在LOG文件中发现某些浏览器将POST请求更改为GET请求,导致文件上传无用。

我们不确定这里发生了什么。这是我们使用的代码: AS3

var request:URLRequest = new URLRequest;
        request.requestHeaders.push(new URLRequestHeader("pragma", "no-cache"));
        request = new URLRequest ("http://www.domain.com/uploads/uploader.php");
        request.data = variables;
        request.method = URLRequestMethod.POST;

PHP

<?php
$filename = $_FILES['Filedata']['name'];
if($_POST['count'] == 0){
    move_uploaded_file($_FILES['Filedata']['tmp_name'], 'temp/'.$_POST['folderString'].'/dateiVorne/'.$filename);
}
if($_POST['count'] == 1){
    move_uploaded_file($_FILES['Filedata']['tmp_name'], 'temp/'.$_POST['folderString'].'/dateiHinten/'.$filename);
}
?>

的.htaccess

# Redirect non-www urls to www
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

1 个答案:

答案 0 :(得分:0)

原因可能是:

  

如果在Flash Player中运行且引用的表单没有正文,则为Flash   即使设置了方法,播放器也会自动使用GET操作   到URLRequestMethod.POST。因此,建议始终使用   包括一个“虚拟”主体,以确保使用正确的方法。

From documentation

我建议您始终包含虚拟URLVariable,例如新的URLVariables(“v = 0”);

选中此link