Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]file_exist - zwraca false mimo iż plik istnieje i wyświetla się poprawnie
przemo191
post 29.08.2012, 13:18:04
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


Witam, mam problem z funkcją file_exists, problem polega na tym że funkcja ta zawsze zwraca wartość false.

  1. var_dump (file_exists('1.jpg')); // zwraca false
  2. echo '<img src="1.jpg"/>'; // ale mimo to plik wyświetla się poprawnie


W czym może tkwić problem?questionmark.gif

Ten post edytował przemo191 29.08.2012, 13:19:29
Go to the top of the page
+Quote Post
dr_NO
post 29.08.2012, 13:21:13
Post #2





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


prosty test:

  1. $file = './1.jpg';
  2. if(file_exists($file)) {
  3. echo '<img src=".'$file'." />';
  4. } else {
  5. echo 'brak pliku';
  6. }


Swoją droga co chcesz zobaczyć, skoro nie masz tam zminnych, anni żadnego "zapytania" ? Wcześniej "echowałeś" //przed edycją...

Ten post edytował dr_NO 29.08.2012, 13:22:47


--------------------
woop woop.
Go to the top of the page
+Quote Post
przemo191
post 29.08.2012, 13:24:10
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


W trzeciej lini masz źle kropki.
Po wklejeniu twojego kodu (i poprawce) wyświetla zawsze "brak pliku", mimo że plik wyświetla się poprawnie w img.

Wcześniej wszystko jest dobrze.

Ten post edytował przemo191 29.08.2012, 13:26:40
Go to the top of the page
+Quote Post
rocktech.pl
post 29.08.2012, 13:29:45
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Problem tkwi w tym, że plik nie istnieje w katalogu __DIR__. Tylko w katalogu / twojej aplikacji.

Daj tak.

  1. $info = new SplFileInfo ( '1.jpg' );
  2. var_dump ( $info->isFile () );
  3. echo __DIR__ . "/1.jpg"; //I zobaczysz, że ten plik nie istnieje


Ten post edytował rocktech.pl 29.08.2012, 13:31:00


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
przemo191
post 29.08.2012, 13:41:09
Post #5





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


Teraz działa i zwraca true, ale dlaczego tak się dzieje?questionmark.gif
Po wyświetleniu obrazu w img jest ok, a po zastosowaniu file_exists zwracało false?questionmark.gif

Niestety kiedy plik nie jest w tym samym katalogu, twoja metoda zwraca false, ale mimo to plik wyświetla się poprawnie po zastosowaniu img.

Ten post edytował przemo191 29.08.2012, 13:34:14
Go to the top of the page
+Quote Post
rocktech.pl
post 29.08.2012, 13:42:21
Post #6





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Wykonujesz funkcje file_exist w pliku który leży w innym katalogu (poza przestrzenią www) => __DIR__.
A wyświetlasz go w przeglądarce co skutkuje wykonaniem żądania w stylu "GET /1.jpg" i odpowiedzią zawierającą obrazek pobrany przez Apache`a z katalogu www.


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
przemo191
post 29.08.2012, 14:01:10
Post #7





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


A jak zrobić tak aby plik znajdował się w katalogu __DIR__ a nie tylko w mojej aplikacji?questionmark.gif

Tamten kod był dla uproszczenia a kod częściowy kod mojej aplikacji to:

  1. $u=1;
  2. while($ilosc_img1 >= $u){
  3. $info = new SplFileInfo ('../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg');
  4. var_dump ( $info->isFile () );
  5. echo __DIR__ . '../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg';
  6. echo '<img src="../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg"/>';
  7.  
  8. if (file_exists('../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg') == TRUE){
  9. echo '<a href="../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg"><img width="130px" src="../uploated_file/wybarwienia/drewna/'.$nazwa_prod1.'/'.$u.'.jpg"/></a>';
  10. }
  11. $u++;
  12. }


linia 4 zwraca false
linia 6 wyświetla prawidłowo obraz
linia 8 nadal zwraca false

Ten post edytował przemo191 29.08.2012, 14:03:19
Go to the top of the page
+Quote Post
rocktech.pl
post 29.08.2012, 14:46:55
Post #8





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Poniższy kod będzie zdecydowanie wydajniejszy.

  1. $nazwa_prod1 = "prod";
  2. $ilosc_img1 = 10;
  3. $i = 0;
  4. $DIR = "pełna ścieżka do katalog gdzie znajdują się pliki .jpg"; //Kluczowa zmienna!
  5. foreach ( glob ( $DIR . "/*.jpg" ) as $file ) {
  6. echo '<a href="../uploated_file/wybarwienia/drewna/' . $nazwa_prod1 . '/' . basename ( $file ) . '."><img width="130px" src="../uploated_file/wybarwienia/drewna/' . $nazwa_prod1 . '/' . basename ( $file ) . '"/></a>';
  7. $i++;
  8. if ( $ilosc_img1 == $i ) {
  9. break;
  10. }
  11. }


Ten post edytował rocktech.pl 30.08.2012, 07:12:18


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
przemo191
post 29.08.2012, 14:55:46
Post #9





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


Teraz działa, dzięki wink.gif
Muszę to przeanalizować i się douczyć co i jak ;p
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:09