【问题标题】:Files not uploading to php directory文件未上传到 php 目录
【发布时间】:2014-11-10 23:11:33
【问题描述】:

我正在尝试在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);
?>

上传.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);

?>

【问题讨论】:

    标签: php session file-upload directory


    【解决方案1】:

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

    文件上传.php

    $user_path = sprintf("/home/ajhausdorf/uploading/%s", $userName);
    $files=scandir($user_path);
    
    foreach($files as $file) {
        if($file == "." || $file == "..") {
            continue;
        }
        echo $file;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 2016-03-28
      • 2012-09-23
      • 2019-07-31
      • 2012-04-06
      • 1970-01-01
      • 2018-01-01
      • 2017-10-25
      相关资源
      最近更新 更多