Загрузка / просмотр файлов при нажатии: списки каталогов Apache - PullRequest
0 голосов
/ 07 января 2012

У меня есть система управления версиями, созданная с помощью php.

Файлы добавляются в репозитории с помощью загрузки. Файлы хранятся в подпапках веб-корня. (Это не проблема, посколькуработать в локальной сети среди доверенных пользователей). Мне нужно добавить опцию для просмотра «необработанного кода» или, по крайней мере, загрузить их. Моя текущая идея - реализовать его с использованием стандартного списка каталогов apache.

Issue

Хранилища, несомненно, будут содержать как HTML, так и файлы PHP. Они выполняются вместо отображения.

Я пытался управлять им с помощью файларазрешения, но не увенчались успехом.

Другое возможное решение - использование текстового поля только для чтения , которое приводит к огромной нагрузке на память сервера, если файл слишком велик.он не поддерживает файлы изображений.

Для отображения файлов в каталоге Apache требуется нулевой код. Вот основная причина, по которой я выбрал этот подход.В любом случае, здесь есть текстовое поле, о котором я упоминал.

public function show_file()
   {
     while(!feof($this->_handle))
     {
       $content=fgets($this->_handle)."<br/>";
     }
     echo "<input type=text value=$content readonly>";
   }

Я бы рассмотрел использование Javascript только в качестве последнего варианта, поскольку он совершенно чужд мне.

Как можно решить эту ситуацию? Есть ли способ исключить определенный каталог (и его подкаталоги) из веб-сервера?

Ответы [ 2 ]

0 голосов
/ 07 января 2012

Я бы рекомендовал вместо этого использовать file_get_contents(). Согласно документам:

file_get_contents () является предпочтительным способом чтения содержимого файла в строку. Он будет использовать методы отображения памяти, если они поддерживаются вашей ОС, для повышения производительности.

Для вашего конкретного случая я бы сделал что-то вроде:

<code>$file = file_get_contents('/path/to/your/file.php');

// If you want to be able to edit the file.
echo '<textarea name="content">' . $file . '</textarea>';

// If you just want to display the content.
echo '<pre>' . htmlentities($file) . '
';
0 голосов
/ 07 января 2012

Как насчет изменения суффикса файла при его загрузке? Например, myfile.php становится myfile.php.removeme? Затем измените его обратно, если человек хочет загрузить файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...