2014-05-17 34 views
2

我试着上传文件(PDF文件)存储在某个目录无法使用move_uploaded_file()以

我使用move_uploaded_file这样从临时移动文件:

move_uploaded_file($_FILES["userdata"]["tmp_name"], 
     "uploads/data/" . $_FILES["userdata"]["name"]); 

运行该脚本但是当我通过FTP检查目录时,没有任何东西。

此目录及其父目录的权限为777。我在HTML表单中使用enctype="multipart/form-data"

有人会知道我在做什么错吗?

var_dump($_FILES);

给出:

array(2) { ["userdata"]=> array(5) { ["name"]=> string(22) "myfile.pdf" ["type"]=> string(15) "application/pdf" ["tmp_name"]=> string(14) "/tmp/phpiUJVu7" ["error"]=> int(0) ["size"]=> int(1398957) } ["userdata2"]=> array(5) { ["name"]=> string(0) "" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(4) ["size"]=> int(0) } } 

我完整的代码:

$allowedExts = array("pdf", "doc", "docx", "wps", "odt"); 
$temp = explode(".", $_FILES["userdata"]["name"]); 
$extension = end($temp); 

if ((($_FILES["userdata"]["type"] == "application/pdf") 
|| ($_FILES["userdata"]["type"] == "application/msword") 
|| ($_FILES["userdata"]["type"] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") 
|| ($_FILES["userdata"]["type"] == "application/vnd.ms-works") 
|| ($_FILES["userdata"]["type"] == "iapplication/vnd.oasis.opendocument.text")) 
&& ($_FILES["userdata"]["size"] < 4000000) 
&& in_array($extension, $allowedExts)) { 

    if ($_FILES["userdata"]["error"] > 0) { 
    echo "Return Code: " . $_FILES["userdata"]["error"] . "<br>"; 

    } else { 
    echo "Upload: " . $_FILES["userdata"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["userdata"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["userdata"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["userdata"]["tmp_name"] . "<br>"; 

     if (file_exists("upload/data/" . $_FILES["userdata"]["name"])) { 
      echo $_FILES["userdata"]["name"] . " already exists. "; 
     } 

     else { 
      move_uploaded_file($_FILES["userdata"]["tmp_name"], 
      "uploads/data/" . $_FILES["userdata"]["name"]); 
      echo "Stored in: " . "upload/data/" . $_FILES["userdata"]["name"]; 
     } 
    } 
} 

else { 
    echo "Invalid file"; 
} 

所有这一切,如果报表传递,我不收到任何错误。

+0

放'$ _FILES' – shatheesh

+0

我是一家的var_dump d确保我正在使用roght目录。相对目录可能会给你带来惊喜。我会使用'dirname(__ FILE __)',然后建立我的绝对路径,然后打印它并检查它是否正确。 –

+0

@ÁxelCostasPena谢谢 - 我也尝试添加绝对路径,例如:mysite.com.au/uploads/data/ – MeltingDog

回答

1

您的var_dump表示您的input html文件名是coverletterresume,但您试图以$_FILES["userdata"]的身份访问。尝试改变的是,它可以帮助

更新:

uploadsmove_uploaded_file()

一个错字也可尝试检查move_uploaded_file这样

if (move_uploaded_file($_FILES["userdata"]["tmp_name"],"upload/data/" . $_FILES["userdata"]["name"]);) { 

echo "Stored in: " . "upload/data/" . $_FILES["userdata"]["name"]; 

} else { 

echo "Move upload seems to be struct !" ; 

} 
+0

是的你是对的,但它是我的错复制那个 - 我已经改变了这里的名字,使它更容易一些。我已经修复了 – MeltingDog

+0

上传工作?如果不打印回显的哪一部分? – shatheesh

+0

它正确地回应了一切。例如:存储在:upload/data/myfile.pdf – MeltingDog

相关问题