Как я могу загрузить файл за пределами 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