Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dodawanie zdjęcia + zmiana nazwy
arekko
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Witam, mam takie skrypt, który dodaje mi zdjęcie na serwer i usuwa stare istniejące.

  1. $config = array();
  2. $config['path_images'] = '../../../grafika/galeria/'; // ścieżka do katalogu grafik
  3. $config['max_file_size'] = 1048576; // maksymalna wielkość pliku w bajtach, 1MB
  4. $config['accepted_extensions'] = array('jpg', 'jpeg', 'png', 'gif'); // dozwolone rozszerzenia
  5. $config['accepted_mimes'] = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif'); // dozwolone typy MIME
  6.  
  7. if ( !file_exists($config['path_images']) || !is_dir($config['path_images']) ) {
  8. if ( !mkdir($config['path_images']) ) { // utworzenie katalogu wraz
  9. exit('Folder obrazków niemożliwy do utworzenia!');
  10. }
  11. chmod($config['path_ images'], 0777); // nadanie praw
  12. }
  13.  
  14. if ( !extension_loaded('gd') ) { // sprawdzenie, czy GD jest załadowane
  15. if ( !dl('gd') ) { // próba wymuszenia załadowania
  16. exit('Biblioteka GD nie została załadowana!');
  17. }
  18. }
  19.  
  20. if ( isset($_FILES['upload_image']) && isset($_POST['upload_submit']) )
  21. {
  22. // pętla analizująca zawartość wszystkich trzech potencjalnie wysyłanych plików
  23. foreach ( $_FILES['upload_image']['error'] as $key => $arr )
  24. {
  25. if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
  26. {
  27. continue;
  28. }
  29. if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
  30. {
  31. echo "plik jest za duży";
  32. continue;
  33. }
  34. if ( file_exists($config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  35. {
  36. echo "Plik o takiej nazwie już istnieje!";
  37. continue;
  38. }
  39. $extension = explode('.', $_FILES['upload_image']['name'][$key]);
  40. if ( in_array(strtolower($extension[count($extension)-1]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false )
  41. {
  42. echo "Niepoprawne rozszerzenie pliku.";
  43. continue;
  44. }
  45. $image = getimagesize($_FILES['upload_image']['tmp_name'][$key]);
  46. if ( !is_array($image) || $image[0] < 1 )
  47. {
  48. echo "Plik graficzny jest spreparowany.";
  49. continue;
  50. }
  51. if ( !is_uploaded_file($_FILES['upload_image']['tmp_name'][$key]) )
  52. {
  53. echo "Plik nie został wysłany.";
  54. continue;
  55. }
  56. if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  57. {
  58. echo "Wysyłanie nie może zostać zakończone poprawnie.";
  59. continue;
  60. }
  61. echo "Zdjęcie zostało poprawnie dodane!";
  62.  
  63. include 'usunstare.php';


Skrypt usunstare.php

  1. $file= $_GET['zdjecie'];
  2. $katalog = "../../../grafika/galeria/";
  3. if (file_exists($katalog.$file))
  4. unlink($katalog.$file);
  5. echo'Zdjęcie zostało usunięte!'


Chciałbym teraz to tak zmienić, żeby zdjęcie, które dodaje miało taką samą nazwę jak to stare. Proszę o pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arekko
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


W takim razie mam takie coś:
Pierwsza strona to plik edytuj.php. Wczytuje on zdjęcia zapisuje w tablicy sortuje i wyswietla. Zdjęcie przechowywane jest w zmiennej $filename['zdjecie'].Gdy użytkownik kliknie na jakieś zdjęcie zostaje wczytany plik dodaj.php.

Plik edytuj.php
  1. $katalog = "../../../grafika/galeria/";
  2. $handle = opendir($katalog);
  3.  
  4. while (($zdjecie = readdir($handle))!=false)
  5. {
  6. if ($zdjecie != '.' && $zdjecie != '..')
  7. {
  8. $tablica[] = array( 'czas' => filemtime( $katalog.'/'.$zdjecie ), 'zdjecie' => $zdjecie);
  9. }
  10. }
  11.  
  12. arsort($tablica);
  13. foreach ($tablica as $filename)
  14. {
  15. echo'<li class="galeria"><img src="'.$katalog.'/'.$filename['zdjecie'].'" />
  16. <a href="dodaj.php?zdjecie='.$filename['zdjecie'].'" class="odnosnik"><div class="zmien">Zmień</div></a></li>';
  17.  
  18. }


plik dodaj.php Mamy tu teraz kod który dodaj zdjęcie. W zmiennej $filename['zdjecie] przechowywana jest nazwa starego zdjęcie w które klikneliśmy. W tym kodzie dodaje nowe zdjecie jednak ono dodaje się z swoją nazwą. Jak zrobić to tak żeby zdjęcie dodawało się już z nazwą z $filename['zdjecie']. ( czyli jak nadpisac to zdjęcie? )Skoro nazwę starego zdjęcia już mam.

  1. $config = array();
  2. $config['path_images'] = '../../../grafika/galeria/'; // ścieżka do katalogu grafik
  3. $config['max_file_size'] = 1048576; // maksymalna wielkość pliku w bajtach, 1MB
  4. $config['accepted_extensions'] = array('jpg', 'jpeg', 'png', 'gif'); // dozwolone rozszerzenia
  5. $config['accepted_mimes'] = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif'); // dozwolone typy MIME
  6.  
  7. if ( !file_exists($config['path_images']) || !is_dir($config['path_images']) ) {
  8. if ( !mkdir($config['path_images']) ) { // utworzenie katalogu wraz
  9. exit('Folder obrazków niemożliwy do utworzenia!');
  10. }
  11. chmod($config['path_ images'], 0777); // nadanie praw
  12. }
  13.  
  14. if ( !extension_loaded('gd') ) { // sprawdzenie, czy GD jest załadowane
  15. if ( !dl('gd') ) { // próba wymuszenia załadowania
  16. exit('Biblioteka GD nie została załadowana!');
  17. }
  18. }
  19.  
  20. if ( isset($_FILES['upload_image']) && isset($_POST['upload_submit']) )
  21. {
  22. // pętla analizująca zawartość wszystkich trzech potencjalnie wysyłanych plików
  23. foreach ( $_FILES['upload_image']['error'] as $key => $arr )
  24. {
  25. if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
  26. {
  27. continue;
  28. }
  29. if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
  30. {
  31. echo "plik jest za duży";
  32. continue;
  33. }
  34. if ( file_exists($config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  35. {
  36. echo "Plik o takiej nazwie już istnieje!";
  37. continue;
  38. }
  39. $extension = explode('.', $_FILES['upload_image']['name'][$key]);
  40. if ( in_array(strtolower($extension[count($extension)-1]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false )
  41. {
  42. echo "Niepoprawne rozszerzenie pliku.";
  43. continue;
  44. }
  45. $image = getimagesize($_FILES['upload_image']['tmp_name'][$key]);
  46. if ( !is_array($image) || $image[0] < 1 )
  47. {
  48. echo "Plik graficzny jest spreparowany.";
  49. continue;
  50. }
  51. if ( !is_uploaded_file($_FILES['upload_image']['tmp_name'][$key]) )
  52. {
  53. echo "Plik nie został wysłany.";
  54. continue;
  55. }
  56. if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  57. {
  58. echo "Wysyłanie nie może zostać zakończone poprawnie.";
  59. continue;
  60. }
  61. echo "Zdjęcie zostało poprawnie dodane!";
  62.  
  63. }
  64. }



Jakiś pomysł na to? (IMG:style_emoticons/default/smile.gif)

Czy ktoś powie mi jak mam to zmienić, żeby zdjęcie się nadpisywało?
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: 28.12.2025 - 14:35