![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
FUNKCJE_BAZY.PHP DZIAŁAJĄ, BO DO WSZYSTKIEGO SIĘ TAK ŁĄCZĘ. W BAZIE JEST UTWORZONA TABELA obrazek z typem BLOB. Kiedy jednak chcę coś wysłać, wciąż jest napisane: "$plik1_nazwa nie przeslany". Co może być źle? Plik pisany przez innego użytkownika z tego forum. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
zrob print_r($_FILES['zdj'])
i wklej to tu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
Nie dało żadnego wyniku.
Może inaczej. Chcę urozmaicić forum o system awatarów. I teraz nie wiem, jak powinny być przesyłane do bazy ich nazwy, czy gdzie przechowywać obrazy? Ten post edytował waqmaz 16.09.2011, 20:15:15 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
czytaj ze zrozumieniem
zrob print_r($_FILES['zdj']) i wklej to tu. <- zobacz co tu napisane |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 3 Dołączył: 17.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie rób czegoś takiego od serwowania plików są serwery plików. Będzie to kilkadziesiąt X wolniejsze jeszcze ci będzie umieszczało śmieci w cache SQL-a. Dodatkowo będziesz musiał się użerać z wszystkimi nagłówkami HTTP (expire, cache, partial-content, etc.). Wolno i kiepsko, zrób sobie sha1 zawartości pliku zapisz zawartość na dysk jako "{$sha[0]}/{$sha[1]}/{$sha}.{$rozszerzenie}" a do bazy relatywną ścieżkę. Expire ustaw w apache na 2 lata do przodu i masz bardzo szybki i wydajny system do serwowania awatarów.
W dodatku w przykładzie powyżej będziesz musiał używać myisam bo innoDB jest koszmarnie wone dla blobów (myisam, też, chociaż ok 2x mniej koszmarne)... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
czyli funkcja basename do ukrywania ścieżki pliku i ładowanie nazw do bazy?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 3 Dołączył: 17.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak, dodatkowo nazwę pliku ukrywa sha1 wykonywany na jego zawartości (sha1_file). Każdy plik ma unikalną sumę kontrolną więc nie martwisz się, że jak jeden użytkownik załaduje 2 awatary pod tą samą nazwą to mechanizm cache przeglądarki tego nie złapie od razu. Po prostu plik będzie miał nazwę wygenerowaną przez ciebie i zmiany zawsze będą widoczne od razu.
To rozwiązanie typowo na CDN. Jak się zwiększa ruch podpinasz pod katalog z statycznymi plikami nginx i ustalasz cache-expire w nieskończoność, przeglądarka załaduje wszystkie awatary jedynie raz i już nigdy nie będzie musiała pytać po HTTP o aktualność plików. Jeszcze by się przydało, żebyś trzymał wszystkie pliki statyczne na subdomenie (odpadają cookie i można ustawić inne nagłówki / serwer)... chociaż i bez tego to dobre rozwiązanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 13:52 |