Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie zdjęć
Forum PHP.pl > Forum > Przedszkole
Gość_kapral
Mam taki kod który pobiera mi z katalogów wszystkie zdjęcia (jpegi)
  1. <?php
  2.  
  3. $katalog = 'galeria';
  4. $tab = array();
  5. $otworz = opendir($katalog);
  6. while(false !== ($czytaj = readdir($otworz)))
  7.  {
  8.  if(strpos($czytaj, '.jpg') !== false) $tab[] = $czytaj;
  9.  }
  10. closedir($otworz);
  11. $ile = count($tab);
  12.  
  13. ?>


Czy jest inny sposób pobierania zdjęć tzn czy zamiast rozszerzenia można sprawdzać typ MIME
Guest
Bo chyba najlepszym wyjściem jest sprawdzanie typu MIME questionmark.gif
Bo ja sprawdzałem czy plik od konca ma .jpg no ale przecież może być jpg, jpeg, JPG, JPEG i wtedy kiszka i wtedy nie wiadomo jak sprawdzać
Vogel
getimagesize zalatwi ten problem jesli chodzi o grafike. oszywiscie mozesz tez sprawdzac MIME winksmiley.jpg
Guest
Cytat(Vogel @ 2006-05-21 16:16:23)
getimagesize zalatwi ten problem jesli chodzi o grafike. oszywiscie mozesz tez sprawdzac MIME winksmiley.jpg

No ale przez getimagesize właśnie trzeba sprawdzić typ MIME czy jakoś inaczej ?
mike
Cytat(Guest @ 2006-05-21 17:22:38)
Cytat(Vogel @ 2006-05-21 16:16:23)
getimagesize zalatwi ten problem jesli chodzi o grafike. oszywiscie mozesz tez sprawdzac MIME winksmiley.jpg

No ale przez getimagesize właśnie trzeba sprawdzić typ MIME czy jakoś inaczej ?

A może najpierw by tak mnuala przeczytać? tongue.gif tongue.gif
getimagesize()

Po co chcesz sprawdzać typ MIME, przed użyciem getimagesize()? Po to by getimagesize() zwróciło Ci ten typ po ra drugi?

A jak coś nie jet obrazkiem, to nie martw się o getimagesize():
Cytat
If accessing the filename image is impossible, or if it isn't a valid picture, getimagesize()  will return FALSE and generate an error of level E_WARNING.

Wystarczy stłumić E_WARNING i sprawdzić czy wynikiem nie jest false.
Guest
a to teraz pojawia się mały problem. Ja w bazie zapisuje nazwy plików, czyli jak plik nazywał sie 2433543.jpg to odcinałem od tyłu 4 zanki i zostawało mi 2433543 i to wpisywałem do bazy następnie przy wyświetlaniu dopisywałem .jpg.
A teraz jak bym dopuszczał jpg, jpeg, JPG, JPEG to nie wiem co dopisać do nazwy popbranej z baz. Można to jakoś rozwiązać czy muszę już zostać przy plikach które bedą miały rozszerzenie .jpg?
mike
Źle zrobiłeś.
Bo tracisz jednoznaczność danych.

Co się stanie jeśli postanowisz dodawać na przykład .gif'y?

Ale na razie w tej sytuacji możesz dopisywać wszędzie .jpg. Jaka to różnica czy pisane małymi czy dużymi literami.
A pomiędzy .jpg a .jpeg jest taka sama różnica jak pomiędzy .htm i .html więc możesz to olać smile.gif
Guest
Cytat
Źle zrobiłeś.
Bo tracisz jednoznaczność danych.

Czyli jak miałbym robić od nowa to lepiej było by przechowywać w bazie całą nazwę wraz z rozszerzeniem ? A nie tylko do rozszerzenia
Gość
A czy istnieje możliwość podczas wczytywania zdjęcia zmiana jego rozszerzenia, czyli obojętnie z jakim rozszerzeniem bedzie zdjęcie (jpg, JPG, jpeg, JPEG) przypisać mu rozszerzenie np jpg ?
Gość_Gostek_*
Czyli jak najlepiej przechowywać nazwę zdjęcie w bazie z rozszerzeniem czy bez ?
tak: aaa.jpg czy aaa
Gość
Czy nikt nie potrafi odpowiedzieć tej osobie. Bo ja sie na tym nie znam tylko html i to podstawy
em1X
Cytat(Gość_Gostek_* @ 7.06.2006, 18:23 ) *
Czyli jak najlepiej przechowywać nazwę zdjęcie w bazie z rozszerzeniem czy bez ?
tak: aaa.jpg czy aaa


jak ci wygodniej, taka jest prawda.. ale jezeli planujesz wgrywac kilka rodzajow plikow graficznych (png, gif, jpg, bmp) to jak potem rozroznisz jaki to był plik?
mike
Cytat(Gość @ 11.06.2006, 20:18 ) *
Czy nikt nie potrafi odpowiedzieć tej osobie. (...)


No kurde, przestań podbijać ten wątek. Przeciez widzę, że Ty i "ta" osoba macie to samo IP.
Jeszcze raz i zamkne ten wątek.

Rada ~em1X'a jest dobra. Przechowuj tak jak Ci wygodnie, w gruncie rzeczeczy nie ma to znaczenia, abyś sam potem potrafił korzystać z tego i ne sprawiało Ci to problemu.
Gość
Przpraszam
To powiedzcie mi jeszcze czy do galeri internetowej oprócz plików JPG można używać innych formatów graficznych ?
mike
No bez przesady, Internet pierwszy raz na oczy widzisz?
Poważnie nie widziałes nigdy innych formatów?
Możesz używać dowolnych formatów, ale czy zdjęcia w nich będą tak samo dobre jak w .jpg?
.gif i .png powstały z inna myslą niż .jpg

I zanim zadasz kolejne pytanie, "Co jest lepsze i czym się różnią" sam poszukaj odpowiedzi.
Gość
Przeczytałem informacje o plikach graficznych no i wyszło mi że jednak jpg będzie najlepsze.
A teraz mam pytanie dotyczące bazy danych. Baza danych będzie wyglądać tak:
id bigint unsigned
tytul varchar(50)
opis text
nawa_zdjecia varchar(50)

Będzie to prosta galeria tak więc wydaje mi sie że tyle pól wystarczy. ale mam pytanie dotyczące przekazywania do strony gdzie będzie wyświetlane duże zdjęcie wartości, czy przesyłać
galeria.php?zdjecie=id
czy
galeria.php?zdjecie=nawa_zdjecia
chodzi mi o to czy przekazywać id rekordu czy nazwę zdjęcia, którąwartość wybrać jako indentyfikator zdjęcia bo jedna i druga będzie unikatowa, ale nie wiem które rozwiązanie jest lepsze
babejsza
Przede wszystkim id powinno wygladac tak:

  1. `id` int(10) NOT NULL AUTO_INCREMENT,
  2. ....
  3. ....
  4. PRIMARY KEY (`id`)


Bigint Ci nie jest do niczego potrzebny. Chyba że planujesz przechowywać w bazie biliardy zdjęć smile.gif.

Odwoływać powinieneś się po kluczu, czyli po id. Wyszukiwanie po słowie będzie wolniejsze.
em1X
  1. jaka masz pewnosc ze przy 1000 zdjec nazwa sie nie powtorzy? ze piszesz ze nazwy beda unikalne
  2. co jezeli w nazwie beda polskie lub inne niedozwolone znaki

ergo chyba oczywistym jest, ze to ID bedzie unikalny.
swiety
mozesz tez zeby uniknac powtarzajacych sie nazw zdjec, bo przeciez bedziesz je przechowywal w jakims katalogu, podczas uploadu zdjecia zadbac o jego niepowtarzalna nazwe dodajac do nazwy np. aktualny czas, moze to wygladac tak:
  1. <?php
  2. if($_FILES['obiekt_pic']['size']>0){
  3. //jezeli podano sciezke do zdjecia to zaladowac
  4. $source=$_FILES['obiekt_pic']['tmp_name'];
  5. $name_pic=time() . $_FILES['obiekt_pic']['name'];
  6. //stworzenie URL sciezka plus zmodyfikowana nazwa zdjecia
  7. $dest="ciezka_do_katalogu_ze_zdjeciami" . $name_pic;
  8. ?>

no i w bazie mozesz sobie przechowywac tylko nazwe zdjecia z czasem przed wlasciwa nazwa, url potrzebujesz tylko po to zeby zrobic upload:

move_uploaded_file($source, $name_pic);


np. cos takiego jak wyzej, no i masz juz pewnosc ze nazwa zdjecia sie nie powtorzy, pozdro
Gość
Dzięki za odpowiedź. Zrobię że będzie identyfikowane przez id, a co do nazwy zdjęcia to chcę zrobić że taką nazwę jaką wybierze użytkownik dla zdjęcia to wczyta, jeśli natomiast zdjęcie o takiej nazwie będzie już istniało to pokaże te zdjęcie i się zapyta czy zamienić zdjęcia czy nie. Wydaje mi sie że to dobre rozwiązanie co o tym sądzicie. Chcę tak zrobić aby użytkownik mógł podmienićzdjęcie jeśli uzna że ma taką potrzebę np bedzie chciał daćwiększe zdjęcie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.