Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zabezpieczenie uploadu zdjęć, Jeśli taka sama nazwa ...
marekpb
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Kraków

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


Witam
Chciałem zapytać, jak można zabezpieczyć skrypt uploadu zdjęć tak, aby kiedy pojawi się kolejne zdjęcie o takiej samej nazwie to np. zapisywało w innej nazwie ? Czy może lepiej zrobić, żeby automatycznie nazywały obrazy kolejno "obraz1", "obraz2", "obraz3" itp. ? Jeśli coś to jak można to zrobić ? Jakie wasze opinie i porady na ten temat ?

Oto mój niedoskonały kod. Jestem w trakcie nauki, ale staram się rozwijać ;] Pozdrawiam.
  1. $uploaddir = 'logo/';
  2.  
  3. if($_FILES['plik1']['error'] == UPLOAD_ERR_OK) {
  4. $new_name = $uploaddir.$_FILES['plik1']['name'];
  5. $trans = array("ą" => "a", "ć" => "c", "ę" => "e", "ł" => "l", "ń" => "n", "ó" => "o", "ś" => "s", "ż" => "z", "ź" => "z");
  6. $new = strtr($new_name, $trans);
  7. $temp_name = $_FILES['plik1']['tmp_name'];
  8. if($_FILES['plik1']['size'] < 307200) {
  9. if(move_uploaded_file($temp_name, $new)) {
  10.  
  11. //Przypisujemy do zmiennej $img_path ścieżke do obrazka
  12. $img_path = $new;
  13.  
  14. //Tworzymy scieżkę do miniaturki
  15. $thumb_path = substr($img_path,0,strrpos($img_path,'.')).'.th.jpg';
  16.  
  17. //ustalamy maksymalny dopuszczalny rozmiar miniatury
  18. $max_width=$max_height=200;
  19.  
  20. //Sprawdzamy czy obraz istnieje
  21. if(!file_exists($img_path))die('<p>Plik obrazu nie istnieje</p>');
  22.  
  23. //Pobieramy informacjie o obrazie
  24. $img_attr = getimagesize($img_path);
  25.  
  26. //Sprawdzamy czy obraz jest wiekszy na szerokość czy na wysokość
  27. // i zmniejszamy odpowiednio rozmiar
  28. // $img_attr[0] - szerokosc, $img_attr[1] - wysokość
  29. if($img_attr[0]>$img_attr[1]){
  30. $scale = $img_attr[0] / $max_width;
  31. }else{
  32. $scale = $img_attr[1] / $max_height;
  33. }
  34.  
  35. //Tworzymy obraz miniaturki
  36. $w = floor($img_attr[0]/$scale);
  37. $h = floor($img_attr[1]/$scale);
  38. $thumb = imagecreatetruecolor($w,$h);
  39.  
  40. //Kopiujemy obraz pomniejszajac go,
  41. imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  42.  
  43. //Zapisujemy do pliku (jakość 85)
  44. imagejpeg($thumb,$thumb_path,85);
  45.  
  46. }
  47.  
  48. } else { echo "Za duży plik";}
  49.  
  50. }
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: 8.10.2025 - 18:04