Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] upload zdjęc - te same nazwy, fotki się nadgrywają gdy ta sama nazwa
grzegorz_g
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

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


proszę o podpowiedź jak rozwiązać taki problem:

mam komis samochodowy i chciałbym aby user dodawał zdjęcia swojego samochodu . Do uploadu używam takiego czegoś:

  1. <?php
  2.  
  3.  // upolad zdjęć
  4. foreach ($_FILES[&#092;"foto\"][\"error\"] as $key => $error) {
  5.  if ($error == UPLOAD_ERR_OK) {
  6.  $tmp_name = $_FILES[&#092;"foto\"][\"tmp_name\"][$key];
  7. $name = $_FILES[&#092;"foto\"][\"name\"][$key];
  8.  $name= strtr($name, 'ążśźęćńół', 'azszecnol');
  9.  move_uploaded_file($tmp_name, &#092;"foto/$name\");
  10.  $array[] = $name;
  11.  
  12. resizeImage(&#092;"foto/$name\", 60, 60, \"foto/mini_\".$name, 75);
  13. resizeImage(&#092;"foto/$name\", 320, 280, \"foto/ok_\".$name, 75);
  14. unlink(&#092;"foto/$name\");
  15. }
  16. }
  17.  
  18. ?>


problem polega na tym iż gdy jeden uzer wprowadzi fotkę o nazwie auto.jpg a później inny dla innego samochodu też wprowadzi fotkę "auto.jpg" nadgra się.

Jak wybrnąć z tego problemu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mario
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


rozwiązanie które proponujesz jest proste, lecz ma wadę. Przy uploadzie bez możliwości kasowania zdjęc spoko, ale w momencie kiedy user będzie miał możliwość skasowania swojej fotki, pozostają "luki w liczeniu", tzn. jeżeli powiedzmy zostanie skasowane kilka(naście) fotek zostają wolne cyfry które można ponownie użyć. Gdyż zliczasz ilość zdjęć w katalogu. I tak powiedzmy nie ma 5, 9 i 15 zdjęcia z 15 wczytanych.
Skrypt poda że $zdjec = 12 gdyż 15-3 fotki skasowane daje właśnie 12. Ale nie możesz zapisać fotki jako 13.jpg gdyż jest, 14.jpg również itd. Musiałby zrobić pętelkę i sprawdzać czy jest wolne miejsce na następne liczenie, czyli dopiero by zapisał jako 16.jpg co daje już 4 razy wykonanie pętli (13, 14, 15, 16). Gdy tego będzie więcej analogicznie pętla zostanie wykonana znacznie więcej razy. Nie wspominam już o możliwości powtórnego nazewnictwa 5.jpg, 9.jpg i 15.jpg

W moim rozwiązaniu mając daną losową nazwę składającą się z 32 znaków (cyfry 0-9 i litery a-z) masz znacznie więcej kombinacji, można sobie policzyć ile jest mozliwych takich kombinacji - mnóstwo. Gwarantuję że aby się dana nazwa powtórzyła jest tak jak szansa wygrania w toto, więc co najwyżej warunek sprawdzający czy dana fotka o takiej nazwie istnieje wykona się co najwyżej raz.

Moim zdaniem obie metody są dobre, jak każdy kod php ma swoje wady i zalety. Każdy cel można osiągnąć na milion sposobów, a jak to zrobić należy już do twórcy.
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 10:58