andrashh
@andrashh
Почему бы и да?

Как получить ссылки на файлы в opendir()?

Есть код, который выводит вложенность папок и файлов в нужной директории.

Пример:
-Папка
--Подпапка
---Файл
---Файл2
--Подпапка 2
---Файл
---Файл2

итд

Вот код:
<?php 
							function scan($dir){
								$d = array();
								$arr = opendir($dir);

								while($v = readdir($arr)){
									if($v == '.' or $v == '..') continue;
									if(!is_dir($dir.DIRECTORY_SEPARATOR.$v)) $d[] = $v;
									if(is_dir($dir.DIRECTORY_SEPARATOR.$v)) $d[$v] = scan($dir.DIRECTORY_SEPARATOR.$v);
								}
								return $d;
							}

							function list_files($array){
								$num = 1;
								foreach($array as $k => $v){
									if(is_array($v)){ ?>
										
										<li class="li-<?php echo $num;?>">
											<a data-toggle="collapse" href="#multiCollapseExample-<?php echo $num; ?>" role="button" aria-expanded="false" aria-controls="multiCollapseExample-<?php echo $num; ?>"><?php echo $k .'--Папка <br>';?></a>
											<ul class="ul-list-<?php echo $num; ?> collapse multi-collapse" id="multiCollapseExample-<?php echo $num; ?>">
												<li class="sub-li">
													<?php list_files($v); ?>
												</li>
											</ul>
										</li>
									<?php 
									$num++;
								}
									else{ 
										
										?>
										<li class="file"><?php echo $v.'-Файл' . $dir . ' <br>'; ?></li>
									<?php }
								}
							}
							list_files( scan('protocols'));
?>


Как задать ссылку на сам файл (для скачивания)?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
pro-dev
@pro-dev
Для скачивания нужен полный путь к файлу снаружи. Если у вас файл лежит в web/images, а сервер настроен так, что все www.site.ru/images смотрят в эту папку, то файл скачается при клике на такую ссылку. Это самое простое и приметившие. Главное, чтобы у вас на файл была вебовская ссылка, а не путь от корня на сервере.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы