Ostatnio tworzę stronę WWW, która zakłada wgranie przez użytkowników znacznej liczby zdjęć (tj. od kilkuset tysięcy do paru milionów). Zastanawiam się nad sposobem przechowywania i wyświetlania tych zdjęć np. na podstronach, w których zostaną umieszczone.

Oto, co wiem i sam stosuję:
Pliki można przechowywać w katalogach numerycznych/kolejnych, efekt jest taki:

www.serwis.pl/1/2/3/obraz1.jpg
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@jagoslau: Nie potrzebowałem nigdy kombinować ze strumieniowaniem przy większych plikach, ale jakieś rozwiązania są dla tego problemu https://stackoverflow.com/a/6527829

ma to znaczenie np. przy przeglądaniu przez FTP

Jeśli zakładasz potrzebę przeglądania pojedynczych plików przy pomocy FTPa to znaczy, że brakuje jakiejś funkcji w samej aplikacji. Powinna zawierać mechanizmy, które będą mówiły, czy całość jest spójna.
  • Odpowiedz
Panowie, Mirki, Mireczki, mam pewne forum i ciągle wchodzi typ spamuje i zakłada multikonta, wie ktoś jak mogę zablokować mu dostęp do strony? Ma zmienne IP, ale dwie pierwsze pule liczb się zgadzają, dlatego chciałem jakoś zablokować na zakres IP, jak myślicie?
#ovh #www #forum #php #programowanie
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AdDiXx: NIby można odciąć dostęp wszystkim, którzy mają podobnie zbudowane IP, ale sprawdź sobie choćby w google co to za sieci są, z których się przyłącza, zebyś sobie pół polski nie odciął.
  • Odpowiedz
@malypirat wg mnie pakowanie interfejsów do kazdej klasy jest bez sensu zwłaszcza jeśli to mają być jakieś gettery i settery, oczywiście to zależy od wielkości projektu ale dla mnie w 90% zasada jest taka że jeśli jestem pewien że dany interfejs byłby zaimplementowany tylko przez jedną klasę to pomijam ten interfejs, także jeśli wiele klas to będzie implementowac i w każdej konieczny jest ten getter i setter to logiczne że dodajesz
  • Odpowiedz
Mireczki mam problem.
Mam sobie folder w którym w każdym podfolderze są zdjęcia.
uploads
uploads\1
uploads\2
uploads\3
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, tak się zastanawiam (chwilowo czysto teoretycznie, bo nie mam gdzie wypróbować) czy jednym formularzem w #php da się obsłużyć za jednym zamachem 2 zapytania do #sql ? Taki prosty przykład:
1. imię, nazwisko, email.
2. imię, nazwisko, email.
3. imię, nazwisko, email.
Zakładam, że pierwszy rekord istnieje i chcę na nim zrobić tylko UPDATE, dwa pozostałe chcę dopisać INSERT-em do bazy, oczywiście za jednym kliknięciem ;] Baza
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Juz po raz któryś w #pracbaza spotkałem się z problemem w #php, gdy

empty($this->getObject()->property) zwraca mi true, mimo że property jest stringiem "bla bla bla". Szukalem czegos na ten temat jednak mało skutecznie, zawsze robie na to obejście $this->getObject()->property != null ale w sumie sam nie wiem dlaczego. Ktoś cos? #programowanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Pan-Zly: no skoro pole jest prywatne to nie ma to prawa działać jeżeli jesteś poza klasą w której jest zdefiniowany :-D

Walnij gettera i będzie spoko.

// edit: widze się wyjaśniło :-D
  • Odpowiedz
Mam problem z emailami. Może ktoś wie jak ten temat ugryźć. Mam server dedykowany na których mam kilka domen, w tym jedna bardzo ważna. Od ponad tygodnia nie dostaje na niego żadnych maili, jak ktoś chce coś do mnie wysłać to nadawca otrzymuje błąd:

[ADRES MOJEGO SERWERA] does not like recipient.
> Remote host said: 554 5.7.1 Service unavailable; Client host [193.222.135.148] blocked using reject.tcats.stop-spam.org; v=spf1 ip6:fd92:59f3:510e::/48 -all Giving up on [ADRES MOJEGO
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: Jak chcesz zmienić wygląd danego pola to musisz nadpisać jego wygląd podobnie jak zrobiłeś to tutaj http://www.textsnip.com/kiokh0 . Zastanawia mnie jak to się stało, że działa Tobie to nadpisanie jak na końcu jest options, ale to chyba jest jakieś specyficzne zachowanie przy radio. Jak masz klasę EntityType to powinieneś nadpisywać bloki typu entitywidget, entity_label w zależności pod jaką nazwą w środku to określiłeś w samej klasie.

Możesz skorzystać
  • Odpowiedz
Pracuje lub pracował ktoś z #poznan w firmie Profitroom? Warto aplikować? Kojarzę prezentację o DDD na ostatnich Phpersach i zastanawiam się czy rzeczywiście stosują takie podejście na co dzień. Taguję #pracait #php
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sarveniusz: Po prostu pozbądź się klasy abstrakcyjnej. Bardzo ważna zasada na równi z SOLID - composition over inheritance. Niezawodnym sposobem pisania jest tworzenie wpierw interfejsów, a następnie klas implementujących. W razie konieczności wraz z rozwojem projektu rozbijamy interfejsy na mniejsze, klasy podobnie rozbijamy na mniejsze, a następnie tworzymy kompozycję przez klasy agregujące które proxują calle w drzewie kompozycji.
  • Odpowiedz