2013-12-12 70 views
0

我从文件窗体调用的PHP脚本,它应该检查密码,文件名,文件类型和错误上传到临时表格。如果它通过了所有应该使用move_uploaded_file上传的测试,但这不起作用。没有错误输出,但我知道它通过了所有的测试,否则它会返回到页面。 PHP脚本:move_uploaded_file()不上传文件

<?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 /位于根目录,因此它是绝对路径。 由于提前,凯尔

+0

你的表单是否使用编码multipart/form-data?尝试打开文件处理程序并在目录中写入文件。什么是move_uploaded_file的返回值? – Corni

+0

为了进行调试,您是否已经将'move_uploaded_file'作为脚本尝试到同一个目录? – Lasse

+0

是的,我的编码是正确的,我会尝试Lasse – FishBowl

回答

0

您可以尝试使用,../swf/或SWF文件夹而不是/swf/

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

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

+0

就像我说的,swf位于我的web服务器的根文件夹中,所以它从web上的完整路径是:serverurl/swf/< - 这会在我的服务器上启动目录,我还以为你不应该使用相对文件路径与move_uploaded_file,因为它有意想不到的结果 – FishBowl

+0

我试图把我的PHP脚本放在根上,它工作,然后当我把它移回去时它再次工作:/谢谢反正 – FishBowl

相关问题