Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Sprawdzanie czy plik istnieje a jesli nie to ...
php__amator
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Witam,
Długo oj długo nie odwiedzałem forum. Wreszcie nadszedł ten dzień i potrzebuję pomocy ... niby człowiek się już trochę nauczył a tu ...
otóż potrzebuję podpowiedzi jak sprawdzić czy w katalogu powiązanym z wpisem w bazie istnieje plik.
Jeśli istnieje idź dalej/pokaż go, jeśli natomiast nie istnieje pokaż plik z określonej lokalizacji.
Najprościej jak to możliwe oczywiście. smile.gif

Dotychczas działało to na zasadzie przekopiowywania pliku/plików z katalogu z template'ami a to z kolei powodowało nadmierne zwiększenie ilości zajmowanego miejsca co przy ograniczonych zasobach .... może być trochę upierdliwe smile.gif I tak na przykład baza miała by powiedzmy 30MB a ma 300MB bo powielają się dziesiątki plików, jak się okazało zupełnie bez sensu wink.gif

Bardziej obrazowo:
Katalog nr 1 jest pusty - skrypt stwierdza brak pliku xxx.cos i kieruje do katalogu w którym znajduje się np uniwersalny zamiennik.
w chwilą za uploadowania do katalogu nr 1 pliku o nazwie xxx.cos skrypt stwierdzi jego obecność i go pokaże.

Mam nadzieję, że moje mętne wyjaśnienie problemu nie jest zbyt mętne ?smile.gif

Pozdrawiam
phpamator
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie bardzo rozumiem w czym masz problem.... Nie wiesz jak użyć funkcji file_exists()?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
php__amator
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Nie wink.gif
Moja dotychczasowa wiedza nie obejmuje tej funkcji jeszcze, dlatego zapytałem tych co "wiedzą" żeby nie marnować czasu ?
Wiem, idę na łatwiznę ale myślę, że prosty przykład ppomógł by mi szybciej się z tym zapoznać smile.gif

Więc ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Moja dotychczasowa wiedza nie obejmuje tej funkcji jeszcze,
Proszę cię..... poprostu zajrzyj do manuala.... tam masz wyjaśnione jak jej użyć.... nie rób z siebie jakiejś tam ofiary losu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


No jednak troszkę mętnie to wyjaśniłeś. Pierwszy z brzegu przykład z manuala:

  1. <?php
  2. $filename = '/path/to/foo.txt';
  3.  
  4. if (file_exists($filename)) {
  5. echo "The file $filename exists";
  6. } else {
  7. echo "The file $filename does not exist";
  8. }
  9. ?>


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
php__amator
post
Post #6





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Bardzo pomogło i już przećwiczyłem działanie. Bardzo dziękuję za pomoc.
Teraz testuję sprawdzanie w trakcie odczytywania danych z bazy i podstawianie obrazka jeśli nie istnieje w źródłowym katalogu z katalogu w którym są ikony uniwersalne smile.gif

Fajnie działa ten file_exist();

Pozdrawiam


Podczas testowania w nieco bardziej "pomotanym kodzie" nie mogę sobie poradzić ze skryptem, otóż:
  1. $SQL = "SELECT * FROM lista ORDER BY id ASC LIMIT ".mysql_escape_string((int)$_GET['page']*IWNS).",".IWNS;
  2. $RES = mysql_query($SQL);
  3. $filename = ($AFR['first_name'].".".$AFR['last_name'].'/image.jpg'); //<----- sciezka do pliku generowana jest ze zmiennych pobieranych z bazy
  4. while($AFR = mysql_fetch_assoc($RES)){
  5. if (file_exists($filename)) {
  6. $filename = ($AFR['first_name'].".".$AFR['last_name'].'/image.jpg'); // <----------- plik istnieje
  7. } else {
  8. $filename = ('/base/pics/image.jpg'); // <----- wciąż wywala mi ten choć w katalogu istnieje plik
  9. }
  10. echo '<div class="foto" id="foto">'
  11. .'<a href='.$filename.'><img src='.$filename.' width="128" height="160"></a></div>';
  12.  
  13. echo "<div class='id' id='id'><b>ID number:</b> ".$AFR['id']."</div>"


gdzie robię błąd ?

Pozdrawiam
phpamator

Znalazłem, działa smile.gif

  1. while($AFR = mysql_fetch_assoc($RES)){
  2. if (file_exists('../base/'.$AFR['first_name'].".".$AFR['last_name'].'/image.jpg')) { //<--------- zamiast $filename wpisałem pełną ścieżkę do pliku
  3. $filename = ('../base/'.$AFR['first_name'].".".$AFR['last_name'].'/image.jpg');
  4. echo $filename;
  5. } else {
  6. $filename = ('/base/pics/image.jpg');

Może to trochę czerstwa konstrukcja ... ale dopiero raczkuję wink.gif

Ten post edytował phpamator 11.09.2012, 23:40:03
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 17:55