文件路径规范PHP / HTML文件上传?

时间:2015-04-20 18:16:04

标签: php text

我写了一个用于上传.txt文件的php文件。我对此很陌生,所以请在这里忍受。

所以我将从问题开始,基本上我得到的输出是:“系统无法找到指定的路径。”


事实:

我通过ftp管理我的wwwroot文件,因为我正在为我的网页使用商业主机。

我的代码:

<?php
if(isset($_FILES['notes'])){
    $errors= array();
    $file_name = $_FILES['notes']['name'];
    $file_size =$_FILES['notes']['size'];
    $file_tmp =$_FILES['notes']['tmp_name'];
    $file_type=$_FILES['notes']['type'];
    $file_ext=strtolower(end(explode('.',$_FILES['notes']['name'])));
    $extensions = array("txt");
    if(in_array($file_ext,$extensions )=== false){
        $errors[]="extension not allowed, please choose a txt file.";
    }
    if($file_size > 5097152){
        $errors[]='File size must be exactly 5 MB !';
    }
    if(empty($errors)==true){
        move_uploaded_file($file_tmp,"/uploads".$file_name);
        echo "Successful Upload, Thanks !!";
    }else{
        print_r($errors);
    }
}
?>

我第一次尝试/ wwwroot / uploads(没有用)现在我尝试过/上传。

我希望我已经提供了适量的信息。

非常感谢您的时间!

-M

2 个答案:

答案 0 :(得分:1)

好的,请尝试更改此行:

move_uploaded_file($file_tmp,"/uploads".$file_name);

对此:

move_uploaded_file($file_tmp,"uploads/".$file_name);

编辑:

好的,因为更改上面文件路径错误,文件本身可能有问题。

尝试更改

$file_name = $_FILES['notes']['name'];

$file_name = basename($_FILES['notes']['name']);

编辑:如果这不起作用,另一个重要的注意事项:

您需要将要上传的目录的所有权设置为“apache”(假设您使用的是apache服务器),以便能够接受从Web上传到此文件夹的内容。

这将是这样的:

chown apache:apache uploads -R

然后将权限设置为775。

- 如果您不在Linux系统上,只是在Windows设备上使用开发服务器,则没有必要。

有关更多错误信息,请将其放在代码顶部:

error_reporting(E_ALL);
ini_set('display_errors', '1');

答案 1 :(得分:0)

如果您的php文件位于 uploads 文件夹的同一文件夹中,请将文件的目的地从/uploads更改为uploads/。如果没有,则必须使用绝对路径插入上传文件夹的路径,或使用../将文件定向到正确的路径。