сессия — файлы не загружаются в каталог php

Я пытаюсь создать программу загрузки файлов в 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);

?>

1

Решение

Есть много способов сделать это; простой способ будет использовать 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;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector