andrzejlechniak
27.12.2010, 18:13:27
Hej. Mam taką sprawę. Chcę wyświetlić pliki graficzne - zdjęcia. Mam kod:
$sciezka = "obrazki_tmp/";
$usun = $_GET["usun"];
while ($plik = readdir($katalog)) { if ($plik !='.' && $plik !='..' && !is_dir($sciezka.$plik)) { if (md5($plik)==$usun) unlink("$sciezka$plik"); else $lista[]=$plik;
}
}
for ($i=0;$i<count($lista);$i++) {
echo '<a href="obrazki_tmp/'.$plik.'"><img src="obrazki_tmp/'.$plik.'" />'.$plik.'</a> '; echo '<a href="" title="zmień nazwę elementu">[zmień]</a>'; echo '<a href="index.php?usun='.md5($lista[$i]).'" OnClick="return confirm(\'Czy napewno chcesz usunąć?\');" title="Usuń element">[usun]</a>'; }
...i nie wyświetla mi tych zdjęć, mimo iż mam ścieżkę do pliku. Po drugie mam pytanie, bo chciałbym mieć możliwość zmiany NAZWY pliku. W jaki sposób to zrobić?
lobopol
27.12.2010, 18:31:45
1. zmiana nazwy pliku
rename2. sprawdź czy to jest na 100% dobra ścieżka, ewentualnie podaj ścieżkę bezwzględną
3. wejdź w adres adresstrony/obrazki_tmp/nazwa_jakiegos_pliku_z_tego_katalogu.jpg wyświetla obrazek?
4. print_r($lista) i pokaż wynik
andrzejlechniak
27.12.2010, 18:47:24
No to tak;
1. Raczej chodzi mi o coś w stylu 'update' z bazą danych tyle, że za pomocą zwykłego PHP. Bo jak przeczytałem i z tego co kapuję, to rename zmienia automatycznie nazwę pliku.
2.Ścieżka jest taka sama jak wyżej, gdzie wyświetlają się pliki jako tekst, może w tym rzecz. Znaczy się w sposobie wyświetlania...
3. Adres wpisałem i działa, znaczy się wyświetlają się pliki graficzne, jak miały się wyświetlać.
4. Wszystko wyświetla ok...
A zdjęć jak nie wyświetlało tak nie wyświetla wciąż...
lobopol
27.12.2010, 19:09:08
1. tak rename służy do zmiany nazwy pliku, możesz trzymać w bazie nazwę rzeczywistą pliku i nazwę do wyświetlania i pobierać z bazy obie wartości i na ich podstawie wyświetlać
2.jesteś 100% pewien, że print_r($list) wyświetla poprawne pliki?
3. spróbój dodać / w <a href="obrazki_tmp/'.$plik.'"><img src="/obrazki_tmp/'.$plik.'" />'.$plik.'</a> ';
4.czy cokolwiek ci wyświetla ta pętla?
5. zamiast for użyj foreacha (łatwiej ci będzie z tym działąć)
6. nie masz otwartego znacznika fieldset
7. przypisz najpierw wszystkie wartości do zmiennej, a dopiero potem ją wyświetl (zamiast tych ech daj $print .= a na koncu echo $print tylko przed pętlą ustaw $print = '';