Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
witam serdecznie,
chciałem się zapytać, czy jest możliwość napisania takiego kodu w php, aby wyświetlał nazwy plików znajdujących się w danym katalogu na dysku twardym? pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Funkcje: opendir, readdir, closedir Przykład nawet w manualu:
za: http://php.net/manual/en/function.opendir.php |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
coś mi nie śmiga, może źle wpisuję ścieżkę?
Kod <?php
$dir = "file:///c:/totalcmd/"; // Open a known directory, and proceed to read its contents if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> Ten post edytował flashion 15.01.2010, 18:49:55 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie pamiętam jak to było na windzie, spróbuj bez tego: file:///
a jak nie pomoże to poodwracaj slashe a jak to nie pomoże to zostaw to: file:/// i poodwracaj slashe (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/dry.gif) Ten post edytował darko 15.01.2010, 18:53:52 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 8 Dołączył: 19.05.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Ludzie, przestańcie się męczyć z tym opendir itd
Do tego służy funkcja glob |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
Kod <?php foreach (glob("file:///c:/totalcmd/") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?> zwraca Warning: Invalid argument supplied for foreach()... i nic poza tym Ten post edytował flashion 15.01.2010, 19:08:28 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 8.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Spróbuj tak , przerobiony przykład z manuala ... Ten post edytował Kruq 15.01.2010, 19:35:29 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 8 Dołączył: 19.05.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
A bez file"// ?
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
Kod <?php $dir=$_SERVER['cokolwiek wpisze']; echo $dir; $filesArray=glob($dir."*"); $line.=print_r($filesArray, true); $line.="<hr>"; for($i=0;$i<count($filesArray);$i++) { $line.=$filesArray[$i]."<br/>"; } echo $line; ?> otrzymuje liste plikow katalogu ze skryptem @burned: próbowałem tak i tak Ten post edytował flashion 15.01.2010, 19:36:55 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 8.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Kod <?php $dir=$_SERVER['cokolwiek wpisze']; zamiast tego wprowadz swoaj sciezke jaka chcesz .. poprawilem ... swoj post Sprawdź jeszcze raz mój poprzedni post ... U mnie działa wszystko ładnie .. katalogi i pliki ładnie wyświetlane ... jak chcesz same pliki to w lini 3 daj *.* zamiast samej * Ten post edytował Kruq 15.01.2010, 19:43:12 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 8.02.2004 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Teraz mi wszystko ładnie działa z tym katalogiem co chcesz. Oczywiście zakładam , że masz tam jakieś pliki, foldery c, cokolwiek w c:/totalcmd
A tutaj masz z ifem na pusty katalog..powinno teraz być ok, pomogłem ? Ten post edytował Kruq 16.01.2010, 01:44:35 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
niestety nie, powoli sam tracę cierpliwość do tego ;/
Kod <?php $dir = ("c:/totalcmd/"); //echo $dir; $filesArray=glob($dir."*.*"); if (empty ($filesArray)){ echo "Pusty katalog"; } else { for($i=0;$i<count($filesArray);$i++) { $line=$filesArray[$i]."<br/>"; echo $line; } }?> taki kod wrzuciłem do lista.php i wysłałem na serwer. odpalam i... "Pusty katalog" ( http://sab.cba.pl/lista.php ) <- działa tobie? próbowałem z file, slashami, innym serwerem, innym folderem, inna przegladarka. co mogę robić źle? dodam, ze nie kodze w php na co dzien, wiec moze to byc cos banalnego. pozdrawiam Ten post edytował flashion 16.01.2010, 02:21:09 |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
niestety nie, powoli sam tracę cierpliwość do tego ;/ taki kod wrzuciłem do lista.php i wysłałem na serwer. odpalam i... "Pusty katalog" To jeszcze się z tym męczysz? (IMG:style_emoticons/default/dry.gif) Skoro wysłałeś na serwer, to dlaczego podajesz ścieżkę: c:/totalcmd/ (IMG:style_emoticons/default/questionmark.gif) |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
a jak być powinno?
|
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
spróbuj:
$dir = "/"; albo $dir = $_SERVER["DOCUMENT_ROOT"]; Przede wszystkim usuń te nawiasy ( ) |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
skąd serwer będzie wiedział, o jaki mi folder chodzi?
chyba sie nie rozumiemy: chcę, aby po wejściu na http://sab.cba.pl/lista.php przez przeglądarkę, skrypt zwrócił mi listę plików z podanego folderu na moim dysku twardym. jest taka możliwość i jeśli tak, to jak to zrobić? |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 8 Dołączył: 19.05.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
PHP jest server side - co za tym idzie nie ma dostępu do maszyny klienta. Wszystkie operacje na plikach w php wykonujesz na komputerze na którym jest skrypt.
Nie da się zrobić tak jak to sobie wymyśliłeś w PHP. Ogólnie ciężko mi wyobrazić, żeby jakikolwiek skrypt grzebał w systemie plików użytkownika tak po prostu. Po co Ci lista plików na komputerze klienta - co chcesz zrobić? Może jest lepszy sposób na to. |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
To nawet ze względów bezpieczeństwa nie jest łatwe/do napisania, chciałbyś, żeby, przeglądając strony w necie, ktoś przeglądał, co masz na dysku twardym? Ja nie. Czyli podsumowując: skrypt jeśli nie będzie zawierał błędów, wyświetli w podanej lokalizacji listę plików znajdujących się na serwerze, a nie u Ciebie na dysku twardym. Chyba że odpalisz sobie na localhost (IMG:style_emoticons/default/winksmiley.jpg) to co innego.
Ten post edytował darko 16.01.2010, 12:24:34 |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
tak właśnie myślałem, ale poprzednimi postami rozbudziliście moją nadzieję. (IMG:style_emoticons/default/winksmiley.jpg)
piszę flasha (osadzonego w html), aplikacja ma za zadanie pobrać z dysku pliki txt, odczytać ich zawartość i na podstawie ich porozsyłać żądania do zewn. skryptów (nie moich) i wyświetlić wyniki. problem tkwi w tym, że mimo to użytkownik podaje ścieżkę do folderu z tymi plikami, mają one różne nazwy. Chciałem je wyświetlić we flashu i dać userowi wybór, którego użyć. poza tym wybrany plik musi zostać skopiowany do jakiegoś innego folderu, ponieważ jest używany jednocześnie przez inną aplikację, a flash wyrzuca błędy przy otwieraniu. właściwie, całość moich skryptów (flasha + reszta plików) mogę udostępnić do ściągnięcia, aby user mógł sobie otworzyć go z dysku. mógłbym też zrobić okienko "przeglądaj" już z samego flasha do wyboru tych plików txt. tylko cała rzecz z tym kopiowaniem. flash raczej nie może tego zrobić. i tu moje pytanie: czy da sie to jakos inaczej wykombinowac? najlepiej z pomocą przeglądarki (flash musi być osadzony). |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 20:35 |