Как я могу загрузить файл за пределами public_html?

У меня есть структура папок, как это:

etc
files
public_html
tmp

Я хочу, чтобы пользователи моего веб-сайта могли загружать файлы и хранить эти файлы внутри files папка (в отличие от хранения их в какой-то папке внутри public_html). Это из соображений безопасности. Я немного новичок, и мне трудно понять, как сохранить загруженный файл в files папка. Вот мой код (соответствующая часть?):

$path = dirname( __FILE__ ) ."/" . 'files/my_file.pdf';
$success = move_uploaded_file( $tmp_name, $path );

Как я должен измениться $path заставить это работать?

2 ответа

Решение

Трудно сказать, куда загружаются ваши файлы, зная, какое значение для FRAMEWORK_PATH является. Если вы специально хотите поместить файл в выбранное вами место, просто укажите его явно как:

$path = '/path/to/files/';
$filename = 'name_you_want_to_give_upload';

$success = move_uploaded_file($tmp_name, $path . $filename);

Если вы хотите сохранить файл вне того места, где находятся ваши файлы upload.php, то вам нужно добавить ../ в файле, где вы хотите сохранить его, например:

если ваши файлы upload.php находятся в этом корне:

public_html/files/php/upload.php

но, если вы хотите сохранить ваши загруженные файлы в папке с именем upFiles, которая находится вне папки php (как в этом случае), вы можете написать путь следующим образом:

../upFiles/

Вы можете использовать этот метод, если вы хотите сохранить его также в подпапке:

../files/anotherFolder/upFiles
Другие вопросы по тегам