![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 6.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem.
Robię bazę danych plików dźwiękowych, które są na lokalnym komputerze, który w żaden sposób nie jest... i nie ma być podłączany do internetu. Bazę oparłem o interfejs przeglądarkowy na Apache/PHP/MySQL. Sprawa jest następująca: Z formularza, z pola file pobierana jest ścieżka do pliku. Ścieżki są przechowywane w bazie mysql. Problem polega na tym, że ta ścieżka potraktowana jako link nie powoduje otwarcia żądanego pliku. Link ma w tym momencie postać: file:///c:/Jakisfolder/jakisplik.wav, po kliknięciu nic się nie dzieje. Nie mogę robić odnośników wewnątrz folderu ze stroną - bo to muszą być ścieżki do pliku - pliki są w różnych miejscach i na różnych dyskach. Strona ma tylko umożliwiać ich szybkie wyszukanie i otwarcie. Czy jest to jakieś zabezpieczenie serwera Apache przed uruchamianiem lokalnych plików? Gdy taki sam link robię na zwykłym pliku html, zapisanym byle gdzie, otworzonym w przeglądarce (bez udziału serwera) to wszystko działa... pliki się otwierają. Czy da się to zrobić za pośrednictwem serwera Apache? Tak, aby uruchamiał pliki lokalne... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Jest to zabezpieczenie wprowadzane przez niektóre przeglądarki (np. FF, Opera) - pliki ściągane poprzez protokół HTTP nie mogą generować odnośników do zawartości na dysku lokalnym użytkownika. Czytałem gdzieś, że w niektórych dla konkretnych witryn można to wyłączyć, ale np. w Operze takiej opcji nie doszukałem się.
Co bym Ci polecił... skoro skrypt działa lokalnie i nikt nie będzie tam manipulować żadnymi danymi, możesz sobie spokojnie wyłączyć w php.ini opcję "open_basedir" i napisać skrypt, który ewentualnie odczytywałby żądane dane z dysku. Wtedy Twój odnośnik wyglądałby następująco: Kod <a href="pobierz.php?path=c:/costam/costam.wav">Kliknij!</a> Transmisja wprawdzie będzie szła przez skrypt, ale przynajmniej będziesz mieć dostęp do danych na własnym dysku niezależny od przeglądarki. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zamiast file:///c:/Jakisfolder/jakisplik.wav daj file://localhost/C:/Jakisfolder/jakisplik.wav może zadziała.
-------------------- Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Kurde, jak przeglądarki blokują dostęp do lokalnych plików, to czemu ma zadziałać? Zresztą, sprawdzałem - i jest tak, jak mówię.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Może dlatego, że jak wybieram opcję Otwórz z menu Plik przeglądarki to w pasku pojawia się włąśnie taki adres, więc chyba nie blokują, nie?
-------------------- Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/ |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Okienko Otwórz w Plik nie ma nic wspólnego z linkiem do lokalnych treści ściągniętych wraz z kodem HTML przez protokół HTTP. A o właśnie takich rzeczach mówimy, takie coś chce zrobić Jero i takie coś jest blokowane.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 6.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Co ciekawe plik nie otwiera się w przeglądarce, ale gdy wybierze się "Zapisz element docelowy jako" to plik się zapisuje.
Stwierdziłem, że będę musiał wprowadzić rygor zapisywania przez korzystających z komputera danych na jednej partycji (która będzie jednocześnie Document root'em). W ten sposób będe miał dostęp do całej struktury folderów. Zastanawiam się czy byłoby możliwe przypisać do każdej partycji takiego document root'a (np. poprzez konfigurację virtualnych hostów w Apache i przypisanie każdemu dyskowi jakąś nazwe - domenę). Wtedy zamiast localhost/... by było np. dysk_d/..., dysk_e/..., dysk_f/... Nie wiem czy to możliwe, a teraz nie chce mi się próbować, bo mam mało czasu. Jak ktoś jest ciekawy to niech spróbuje i opowie... ![]() Pozdrawiam i dziękuję za odpowiedzi. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 08:30 |