Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2018, 14:20   #11
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Автор Вы не правильно поставили задачу для себя и пытаетесь ее решить. Учитесь сразу делать все правильно. Вам уже сказали положите файлы в директорию нгинкса или апача, и ссылайтесь сколько Вам угодно. или создайте фтп "файло-помойку" вариантов много, но среди них нет, ссылаться напрямую.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 07.04.2018, 13:22   #12
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию Объясняю подробнее

2 компа.png
Имеются 2 компьютера, соединенные между собой сетевым кабелем. На 1-м компьютере установлен сервер приложений TopServer 2.1. На 2-м компьютере можно просматривать такой же локальный сайт, что и на 1-м компьютере.
Ниже на PHP составлен код, который выводит содержимое каталога. На обоих компьютерах данный код работает.

Код:
$d=opendir($localdir);
while ($e=readdir($d))
{
   if ($e=='.')
      continue;
   if ($e=='..')
   {
      $d0=dirname($localdir);
      if (substr($d0,-1)!="\\")
         $d0=$d0."\\";
      echo "<a href=\"?localdir=".$d0."\">На уровень выше</a><br>";
      continue;
   }
   if (is_dir($localdir.$e))
      echo "<a href=\"?localdir=".$localdir.$e."\\\">".$e."</a><br>";
}
rewinddir($d);
while ($e=readdir($d))
{
   if (is_file($localdir.$e))
      echo "<a href=\"?localfile=".$localdir.$e."\">".$e."</a><br>";
}
closedir($d);
Я хочу с этой помощью сделать свой проводник. Папки открываются, а вот скачивание файла не знаю как реализовать.
Вопрос: как скачивать локальные файлы с компьютера. Что нужно прописывать в <a href="???????????????????">

Выкладываю во вложении рабочую версию
Вложения
Тип файла: txt index.txt (1.3 Кб, 118 просмотров)
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 07.04.2018, 13:59   #13
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Здравствуйте!
<a href="file://localhost/D:/Файл.doc">Скачать</a>
- почему-то не работает, то есть ссылка не кликается...
Можете подсказать в этом вопросе?
"localhost/" лишний
"file://D:/Файл.doc"

Вот только в современных браузерах это может быть заблокировано.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 14:02   #14
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Ниже на PHP составлен код, который выводит содержимое каталога. На обоих компьютерах данный код работает.
Данный код не может работать на обоих компьютерах. Он работает только на сервере.
Или у вас 2 сервера?

Что-бы второй комп мог скачать файлы с 1 компьютера.
1) Вы должны пути на сервере 1 преобразовать в виртуальные папки сервера.
"D:/Файл.doc" в http://server1/d/Файл.doc"
2) Настроить доступ сервера к локальным папкам. Обычно в целях безопасности это закрыто. Досуп дальше папки сервера ограничен.
Поэтому как минимум настроить отображение либо средствами сервера либо средствами ОС.
Выше по "d/" я имел в виду symlink

Что за TopServer это Apache или IIS?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 07.04.2018 в 14:09.
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 14:56   #15
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Данный код не может работать на обоих компьютерах. Он работает только на сервере.
Или у вас 2 сервера?
Нет, сервер на 1-м установлен. Я имел ввиду, что на 2-м компьютере отображается содержимое каталога на 1-м компьютере.

Цитата:
Сообщение от Pavia Посмотреть сообщение
Что за TopServer это Apache или IIS?
TopServer - это бесплатный сервер приложений (Apache + PHP + MySQL + PERL + SQLite + FTP в одном пакете). http://www.topserver.ru/show.php?par...ge=description

Цитата:
Сообщение от Pavia Посмотреть сообщение
"D:/Файл.doc" в http://server1/d/Файл.doc"
Нет, "http://server1/d/Файл.doc" тоже самое что и "С:\Program Files\TopServer\home\localhost\d\Фа йл.doc"

Цитата:
Сообщение от Pavia Посмотреть сообщение
"localhost/" лишний
"file://D:/Файл.doc"

Вот только в современных браузерах это может быть заблокировано.
Да, верно, не кликается
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 07.04.2018 в 15:07.
newerow1989 вне форума Ответить с цитированием
Старый 07.04.2018, 15:59   #16
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Нет, "http://server1/d/Файл.doc" тоже самое что и "С:\Program Files\TopServer\home\localhost\d\Фа йл.doc"
Помнится через mod_rewrite я подменял путь до нужного диска. Но увы исходники не сохранились.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 16:52   #17
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Чтобы при открытии 'http://server1/d/Файл.doc' скачивался файл 'd:/Файл.doc'
Можно в настройках апача прописать вот так:
Код:
Alias "/d/" "d:/"
<Directory "d:/">
   AllowOverride all
   Options Indexes FollowSymLinks
   Require all granted   
</Directory>
Примечание:
нужен модуль alias_module
Доступ к директории открыл всем на всякий случай. Так что для безопасности надо будет ограничить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 07.04.2018 в 16:54.
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 17:00   #18
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Я тут подумал можно и чисто на php решить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 17:40   #19
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Набросал примерчик чисто на php. До реального применения ещё доработать но в целом работает.
Позволяет скачать файл 'D:\test.txt'.

Код:
<?php
if(isset($_GET['filename'])) {
  $file_name= $_GET['filename']; 
  $file_data=file_get_contents($file_name);
  $basename=basename($file_name);
  header('Content-disposition: filename="'.$basename.'"');
  header("Content-Type: application/octet-stream"); 
  echo $file_data;
  } else
 {
 echo "<html>";	 
 echo "<head>";	 
 echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";	 
 echo "</head>";	 
 echo "<body>";	 
 echo "<a href=\"?filename=D:\\test.txt\">D:\\test.txt</a><br>";
 echo "</body>";	 
 echo "</html>";	 
 }
 ?>
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 08.04.2018, 22:11   #20
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Зачем нужен весь этот фетиш?
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить Chrome устанавливать и читать cookies для локального файла на диске [file:///]? ResourceSpace Общие вопросы Web 3 02.11.2015 12:25
Получить имя файла из ссылки(в конце ссылки нет имени файла) Человек_Борща Работа с сетью в Delphi 11 05.06.2011 15:15
Получение ссылки скачивания видео с контакта cargo29 Работа с сетью в Delphi 6 28.05.2011 22:50
После наведения курсора на линк нужен выбор формата файла для скачивания armansystem HTML и CSS 0 25.05.2010 22:33