繁体   English   中英

文件未上传到php目录

[英]Files not uploading to php directory

我正在尝试在php中创建文件上传程序,该程序由file_upload.php和upload.php组成。 问题是在用户登录并上传文件后,显示的是阵列或文件路径而不是文件。 下面的几行应创建目录路径,然后将文件回显到页面:

mkdir($full_path, 0700);
echo($full_path, 0700);

但是,它打印出以下内容:

/home/ajhausdorf/uploading//Argentina.docx/home/ajhausdorf/uploading//Argentina.docxnouploaded/tmp/phpcLfB0Y

如何显示目录而不是路径中的文件?

file_upload.php

<?php
        session_start();
        $username = $_SESSION['username'];
        echo $_SESSION['username'];
?>

<?php

    // view the files uploaded to the user's directory
        $user_path = sprintf("/home/ajhausdorf/uploading/%s", $userName);
           $files=scandir($user_path);
?>

upload.php的

<?php
         session_start();

         // Get the filename and make sure it is valid
         $filename = basename($_FILES['uploadedfile']['name']);
         if( !preg_match('/^[\w_\.\-]+$/', $filename) ){
            echo "Invalid filename";
            exit();
         }

         // Get the username and make sure it is valid
         $username = $_SESSION['username'];
         if( !preg_match('/^[\w_\-]+$/', $username) ){
            echo "Invalid username";
            exit();
         } 

         $full_path = sprintf("/home/ajhausdorf/uploading/%s/%s", $username, $filename);
         $dir = sprintf("/home/ajhausdorf/uploading/%s", $username);
         $user_path = sprintf("/home/ajhausdorf/uploading/%s", $userName);
            $view = scandir($user_path, 1);
               mkdir($full_path);
               echo ($full_path);

            if (file_exists($dir)) {
               mkdir($full_path, 0700);
               move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $full_path);

            } else {
               mkdir($full_path, 0700);
               echo($full_path);
               move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $full_path);
               echo "no";
            }

            if(file_exists($_FILES['uploadedfile']['tmp_name']) || is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {
               echo  "uploaded";
            } 

          echo $_FILES['uploadedfile']['tmp_name'];
          print_r($view);

?>

有很多方法可以做到这一点。 一种简单的方法是使用foreach循环仅输出文件名。

fileupload.php

$user_path = sprintf("/home/ajhausdorf/uploading/%s", $userName);
$files=scandir($user_path);

foreach($files as $file) {
    if($file == "." || $file == "..") {
        continue;
    }
    echo $file;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM