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

File Path Specification PHP/HTML file upload?

我写了一个 php 文件来上传 .txt 文件。我对此很陌生,所以请耐心等待。

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


事实:

我通过 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(没有用)现在我只尝试了 /uploads。

我希望我给你的信息量是正确的。

非常感谢您的宝贵时间!

-M

好的,尝试更改此行:

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 服务器),以便它能够接受从网络上传到该文件夹.

这将是这样的:

chown apache:apache uploads -R

然后设置权限为775

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

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

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

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