Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] upload fotek - problem !
Forum PHP.pl > Forum > PHP
alogator
witam mam taki kodzik który ma mi wrzucać foteczki na serwer. Prawie wszystko działa mianowicie kod wgrywa foto i robi z niego miniature ale ginie gdzieś oryginał

na serwerze mam stworzone foldery :
upload / - w nim znajduje sie formularz do wrzucania
upload/foto - tu chcicałem żeby lądowały oryginały
upload/foto/miniaturki - tutaj tworzą sie miniatury i tu jest ok

dodam że atrybuty mam ustawione na 777.

  1. <?php
  2.  
  3. $max_rozmiar = 1024*1024;
  4. if (is_uploaded_file($_FILES['plik']['tmp_name']))
  5. {
  6. if ($_FILES['plik']['size'] > $max_rozmiar)
  7. {
  8.     echo 'Błąd! Plik jest za duży! Maksymalny rozmiar zdjęcia to 1024*1024';
  9. } else
  10. {
  11.     echo '<center>Odebrano pliczek. Początkowa nazwa: '.$_FILES['plik']['name'];
  12.     echo '<br/>';
  13.     if (isset($_FILES['plik']['type']))
  14.     {
  15.         echo '<br>';
  16.     }
  17.     move_uploaded_file($_FILES['plik']['tmp_name'],
  18.       $pliczek=  $_SERVER['DOCUMENT_ROOT'].'/upload/foto/'.$_FILES['plik']['name']);   //gdzie przenosi
  19.         $FILES['plik']['name']=$foto_przeslane;
  20. }
  21. }
  22.  
  23. else
  24. {
  25.   echo 'Błąd przy przesyłaniu danych!';
  26.  
  27. }
  28.  
  29. $obrazek = $pliczek;
  30.  
  31.  
  32. $rozmiar = @getimagesize($obrazek);
  33.  
  34.  
  35. $stary_obrazek = imageCreateFromJpeg($obrazek);
  36. $max_szerokosc = 240;
  37. $max_wysokosc = 440;
  38.  
  39.  
  40.  
  41.  
  42. if($image_attribs[0]>=$image_attribs[1])
  43.   {
  44.     @$wspolczynnik = ($width >= $height) ?
  45. $max_szerokosc/$rozmiar[0] : $max_wysokosc/$rozmiar[1];
  46.   }
  47. else
  48.     {
  49.      @$wspolczynnik = ($width < $height) ?
  50. $max_szerokosc/$rozmiar[0] : $max_wysokosc/$rozmiar[1];
  51.     }
  52. $m_szerokosc = $rozmiar[0] * $wspolczynnik;
  53. $m_wysokosc = $rozmiar[1] * $wspolczynnik;
  54. $pusty = imagecreatetruecolor($m_szerokosc,$m_wysokosc);
  55. $miniaturka_s = strrchr($obrazek, "/");
  56. $miniaturka_s = substr($obrazek, 0 , strlen($obrazek)-4) . '.jpg';
  57. imageCopyResampled($pusty,$stary_obrazek,0,0,0,0,$m_szerokosc,$m_wysokosc,
  58. $rozmiar[0], $rozmiar[1]);
  59. imageJpeg($pusty, $miniaturka_s ,70);
  60. $miniaturka =substr($_FILES['plik']['name'],0,strlen($_FILES['plik']['name'])-4)."-thumb.jpg";
  61. copy($miniaturka_s, "./foto/miniaturki/$miniaturka");
  62.  
  63. echo "Miniaturka przesłanego pliczku :<br><p><center><img src=\"foto/miniaturki/".$miniaturka."\"></p>";
  64. $_SESSION['form'][zdjecie] = $katalog."foto/miniaturki/".$miniaturka;
  65. unlink($miniaturka_s);
  66.  
  67. ?>
tsharek
zobacz co Ci zwraca $_SERVER['DOCUMENT_ROOT']
użyłeś go do skopiowania oryginalnego pliku, ale w miniaturkach używasz "./foto/miniaturki/"
zgaduje, że gdybyś zrobił:
  1. <?php
  2. move_uploaded_file($_FILES['plik']['tmp_name'],
  3.      $pliczek= './foto/'.$_FILES['plik']['name']);
  4. ?>

to by zadziałało:)

btw: w linii 20 masz zapis: $FILES['plik']['name']=$foto_przeslane;

nie wiem czy nie popełniłeś literówki (powinno być $_FILES a nie $FILES), ale nie wiem bo nie wykorzystujesz później tego więc nie wiem czy to zamierzone czy nie:)

edit: se zobaczyłem dokładniej ten skrypt, masakra poniżej jest i nie rozumie co autor miał na myśli:) (dwa razy deklaracja $miniaturka_s, za drugim wymusza rozszerzenie jpg. a na końcu go kasuje... - pewnie to jest problemem (jeżeli upload też miał rozszerzenie jpg). skrypt do napisania od nowa....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.