move_uploaded_file()不上传文件

时间:2013-12-12 20:00:57

标签: php upload

我是一个从文件表单调用的php脚本,它应该检查表单上的密码,文件名,文件类型和错误上传到temp。如果它通过所有测试,它应该使用move_uploaded_file上传,但这不起作用。没有错误输出,但我知道它通过了所有测试,否则它将返回到页面。 PHP脚本:

<?php
$temp = explode(".", $_FILES["file"]["name"]);
if ($_POST["pass"] == "examplePass"){
    if($_FILES["file"]["name"] == ""){
        header("Location: /upload?i=f");
    }
    elseif($_FILES["file"]["type"] != "application/x-shockwave-flash"){
        header("Location: /upload?i=s");
    }
    elseif ($_FILES["file"]["error"] > 0){
        header("Location: /upload?i=e");
    }
    else{
        move_uploaded_file($_FILES["file"]["tmp_name"], "/swf/". $_FILES["file"]["name"]);
        if(file_exists("/swf/" . $_FILES["file"]["name"])){
            header("Location: /upload?i=o");
        }
        else{
            print_r($_FILES);
        }       
    }
}
else{
    header("Location: /upload?i=p");
}
?>

输出:

Array ( [file] => Array ( [name] => launcher.swf [type] => application/x-shockwave-flash [tmp_name] => /tmp/phpBugtQL [error] => 0 [size] => 161303 ) )

我用多个swf文件试过这个,我记得它曾经工作过。 我已将整个web文件夹设置为0777,并将其递归到所有子目录和文件中。 目录/ swf /位于root,因此它是绝对路径。 在此先感谢,凯尔

1 个答案:

答案 0 :(得分:0)

您可以尝试使用,../swf/或swf文件夹的完整路径,而不是/swf/

 move_uploaded_file($_FILES["file"]["tmp_name"], "../swf/". $_FILES["file"]["name"]);

swf文件夹路径的原因,请确保您使用了正确的路径