Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak przypisać danemu rozszerzeniu pliku dany obrazek?
david8213
post
Post #1





Grupa: Zarejestrowani
Postów: 308
Pomógł: 0
Dołączył: 9.12.2009

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


Chciałbym żeby każdy plik o danym rozszerzeniu miał przyporządkowaną ikonkę (plik jpg)
Skrypt musi wykrywać rozszerzenie i podstawiać do niego plik graficzny oraz wyświetlać na stronie.

(IMG:http://img175.imageshack.us/img175/9039/beztytuujm.jpg)

Wyświetlanie plików i ich rozmiarów już zrobiłem. Teraz chcę dołożyć ikonki.

Kod
<?php
      $katalog = '../grafik/';
      $dirArray = array();
      $opdir = opendir("../grafik");
      while($file = readdir($opdir)){
      if ($file === '.' || $file === '.' || $file === '..' ||  $file === 'index.php') continue;
      $dirArray[] = $file;              }
      closedir($opdir);  
      sort($dirArray);
      foreach($dirArray as $file)         {
      $size = filesize($katalog.$file);
      echo '<table><tr><td width="500" bgcolor="#F5F5F5"><img align=absmiddle src="img/  txt.bmp"><a href="../grafik/'.$file.'" target=blank>'.$file.'</a></td><td width="100" bgcolor="#F5F5F5"><a><div style="margin-left: 5">';
      printf (" [%.2f kB]", $size/1024);
      echo '</a></td></tr></table>'; }
?>


Proszę o pomoc
Kod
<?PHP
$display['xlt'] = "img/xml.bmp";  
$display['xls'] = "img/xml.bmp";  
// itd...
global $display;

array_key_exists(get_extension($file), $display)
                         echo "<img align=absmiddle src=\"";  
                         echo $display[get_extension($file)];
                         echo "\"> ";  
?>


Ten post edytował david8213 14.02.2010, 09:01:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
Rozpoznajesz plik po rozszerzeniu
- Wy chyba nie macie żadnej wizji, jak to ma działać. Przecież plik może mieć ten sam typ (np. obrazek jpg), ale różne rozszerzenie, co nie? Takie rzeczy robi się po typie MIME, tworzy się tabelę w bazie danych:
typ MIME | Klasa CSS | Inne

I przy wyświetlaniu pliku dołącza się JOINem klasę CSS i wyświetla na stronie:
  1. <a href="plik.jakis" class="klasa css z bazy">pobierz</a>


Lub wrzucamy to do tablicy (jeśli korzystamy np. z plików a nie bazy):
  1. $tablica['typ_mime_1'] = 'klasa css 1';
  2. $tablica['typ_mime_2'] = 'klasa css 2';
- tablicę typów możesz trzymać np. w pliku tekstowym

Następnie przy generowaniu kodu html korzystamy z funkcji:
http://pl2.php.net/manual/pl/function.array-key-exists.php

Która sprawdzi, czy podany typ pliku jest w tablicy, jeśli tak to wyświetlamy:
  1. echo '<a href="plik.jakis" class="'.$tablica_typow[$typ_mime_pliku].'">pobierz</a>';
- a jeśli nie to dajemy jakąś klasę uniwersalną, np. "nieznany typ pliku". Oczywiście pobrać listę plików/plik wraz z parametrami takimi jak nazwa, rozmiar, data uploadu, typ mime etc. umiesz?

Po co Wam te ify czy switche? To się robi na tablicach dwoma linijkami kodu.
Go to the top of the page
+Quote Post

Posty w temacie
- david8213   [PHP]Jak przypisać danemu rozszerzeniu pliku dany obrazek?   14.02.2010, 08:49:31
- - fifi209   No dobra, ale zapomniałeś podać swój kod, w którym...   14.02.2010, 08:52:03
- - Kshyhoo   Przecież to proste. Rozpoznajesz plik po rozszerze...   14.02.2010, 09:01:10
- - david8213   Zrobiłem coś takiego. Da radę zrobić to krótszym s...   14.02.2010, 09:48:04
- - darko   Aż się prosi o switch - case   14.02.2010, 09:56:45
- - thek   Można switch-case, albo tablica w formie klucz=...   14.02.2010, 10:05:12
- - david8213   chcę to skrócić Kodif (substr($file,...   14.02.2010, 10:21:30
- - altruista2   ehh, a jak plik będzie miał rozszerzenie .jpeg alb...   14.02.2010, 11:27:10
- - Pilsener   CytatRozpoznajesz plik po rozszerzeniu - Wy chyba ...   14.02.2010, 11:54:56
- - altruista2   @up: serio będziesz odczytywał typ MIME dla np. 10...   14.02.2010, 12:01:37
|- - Pilsener   Cytat(altruista2 @ 14.02.2010, 12:01...   14.02.2010, 13:03:43
- - david8213   Zrobiłem coś takiego Kod<?PHP //ikonki functi...   14.02.2010, 12:10:16
- - Kshyhoo   Cytat(altruista2 @ 14.02.2010, 11:27...   14.02.2010, 12:11:45
- - altruista2   Co to znaczy "nie działa do końca"? @Ks...   14.02.2010, 12:11:54
- - Kshyhoo   Przy 1000 rozszerzeń nie ma kompromisu między wyda...   14.02.2010, 12:17:06
- - david8213   Działa,działa - Dzięki Można jeszcze zrobić że jak...   14.02.2010, 12:25:19
- - Kshyhoo   [PHP] pobierz, plaintext '' => 'nic'[PHP] pobie...   14.02.2010, 12:29:21
- - altruista2   Domyślna: [PHP] pobierz, plaintext $ext = file_ext...   14.02.2010, 12:32:59
- - david8213   jak rozszerzenie będzie inne niż w tablicy to poja...   14.02.2010, 12:40:22
- - altruista2   Tak, napisałem przecież: Cytat(altruista2 @ 1...   14.02.2010, 12:43:26
- - david8213   Ta domyślna nie działa Gdzieś jest błąd Kod<?...   14.02.2010, 12:45:13
- - altruista2   [PHP] pobierz, plaintext $ext = file_ext($file...   14.02.2010, 12:48:55
- - david8213   Dzięki. Działa.Zapomniałem średnika   14.02.2010, 12:56:23
- - altruista2   Kliknij pomógł to temat zaświeci się na żółto....   14.02.2010, 12:57:26
- - krzysiekk   witam moze mdo odczytania foleru trzeba wykozytac...   14.02.2010, 13:05:48
- - altruista2   CytatJeżeli chce człowiek zrobić prowizorkę to też...   14.02.2010, 13:06:22
- - Pilsener   No to sobie skopiuje tą samą ikonkę tylko z inną n...   14.02.2010, 13:09:13
- - david8213   Mój końcowy kod wygląda następująco. Wszystko dzia...   14.02.2010, 13:14:36


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

 



RSS Aktualny czas: 12.10.2025 - 00:05