Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Upload zdjęć i ich galeria
XP'ek
post
Post #1





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

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


Witam,

według was jak najlepiej rozwiązać opcję dodawania zdjęć. Chodzi dokładnie o to ponieważ chce zrobić skrypt cms z galerią i zastanawiam się nad dodatkowymi artykułami i chce zrobić około 4 fotek by można było upladowac do niego i teraz jak lepiej z tym zrobić do każdego zdjęcia osobne pole czy może rozwiązać to coś na przykładnie allegro tylko jak to drugie zrobić ? Bo końcowy efekt ma być podobny do galerii z allegro lub otomoto. Jak radzicie ?

znalazłem coś takiego tylko jak teraz to przetrzymywać w bazie ?
Kod
http://valums.com/ajax-upload/



na myśl przychodzi mi nowa tabela w bazie o nazwie np. foto i tak posiada ona pola id, nazwa, id_artic

Jak sądzicie będzie to dobre ?

Ten post edytował XP'ek 1.08.2010, 14:11:15
Go to the top of the page
+Quote Post
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Nie do końca rozumiem o co ci chodzi. Możesz zrobić tak:
  • tabela Photo - pola: photo_id(nasz klucz),path,checksum(np.suma md5).
  • Dodatkowo tabela np. Product_photo - user_id, product_id, photo_id, description.

Później zwykłe złączenie w zapytaniu.

Jak user uploaduje fotę to liczysz jej sumę i sprawdzasz czy już takiej nie masz w bazie, jak masz to po prostu linkujesz do wpisu w tabeli Photo, w przeciwnym wypadku tworzysz nowy rekord w tabeli Photo i linukujesz to do tabeli Product_photo. Chcesz wszystkie foty usera? Filtrujesz po user_id.

Ten post edytował everth 1.08.2010, 14:17:24


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
XP'ek
post
Post #3





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

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


user jest jeden bo to admin będzie robić główny tylko przy dodawaniu newsa chce zrobić dodawani więcej zdjęć niż 2 tak do 4 może 6 i tak jak muwisz baze o nazwie photo i w niej id fotografii (klucz głowny bazy), nazwa zdjęcia, id_newsa tylko teraz kwestia jak to prechwycić z ajaxa ? nie bawiłem się tym jeszcze a chce by to ładnie wyglądało smile.gif
Go to the top of the page
+Quote Post
everth
post
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Jeśli o mnie chodzi to przy ładowaniu jakichkolwiek plików nie używam Ajaxa, lepiej wysłać pliki normalnie i za pomocą header() w PHP zrobić przekierowanie na interesującą nas stronę (np. z podglądem zdjęć). Mniej kodu, mniej bugów. Jeśli chodzi chodzi o przesyłanie kilku(nastu) plików to normalne przeglądarki (FF, Chrome, Opera) akceptują atrybut 'multiple' przy <input type='file' /> (czasem w połączeniu z atrybutami 'min' i 'max'). W IE musisz kombinować.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
XP'ek
post
Post #5





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

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


sorki ale nie kapuje dokładnie co masz na myśli możesz więcej powiedzieć ?
Go to the top of the page
+Quote Post
everth
post
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


  1. <form action='upload.php' enctype="multipart/form-data" method='post'>
  2. <input type='file' name='photos' multiple='multiple' max='6' accept="image/jpeg" />
  3. </form>

Niestety nie zauważyłem żeby przeglądarki respektowały atrybut accept i pozwalały zaznaczać pliki *.jpg. Może kiedyś się to zmieni.
A w PHP
  1. $photos = $_FILES['photos'];
  2. foreach($photos as $photo) {
  3. if ($photo['type']=='image/jpeg') {
  4. if(!existsInDb($photo)) {
  5. if (move_uploaded_file($photo['tmp_name'],$nasza_sciezka)) addToDb($photo); //jeśli prawidłowo skopiowany to dodajemy do bazy
  6. } else {
  7. // (...) jakiś kod który wykonamy gdy okaże się że takie samo zdjęcie zostało już wgrane, np. pobranie jego id i przypisanie do Tabeli Product_ID
  8. }
  9. }
  10. }
  11. header("Location: ".$_SERVER['HTTP_REFERER']);

Wykonuje operacje na uploadowanych plikach i pod koniec przekierowuje z powrotem na stronę z której wyszło zapytanie (niebezpieczne, lepiej wpisać tam jakiś stały URL).

Ten post edytował everth 1.08.2010, 21:28:32


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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 Aktualny czas: 20.08.2025 - 13:13