Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] 2 wywołania funkcji, działa tylko 1
mati85
post 19.02.2009, 08:38:14
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 21.01.2009

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


Witam.

Próbuje napisać skrypt dodający zdjęcia do galerii. Uploadowane zdjęcie ma trafiać do 2 miejsc (do 1 w postaci powiedzmy normalnej fotki, w drugie w postaci miniaturki). Napisałem następujący skrypt, ale przy wywoływaniu funkcji pojawia się problem. Pierwsze wywołanie się wykonuje, ale drugie które różni się tylko parametrami obrazu i ścieżką dostępu już nie działa. Skrypt przy testach w przeglądarce nie pokazuje błędów.

Proszę o pomoc.

Kod
       <div>
<form enctype="multipart/form-data" action="dodaj.php" method="POST">
<input name="plik" type="file" />

<input type="submit" value="Dodaj" />

</form>
</div>

<?php

$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

function zmrozdz ($plik_tmp, $szer, $wys)
{
     if(is_uploaded_file($plik_tmp))
     {
         list($width, $height) = getimagesize($plik_tmp);
         $proporcja = $width / $height;
                
         if ($width > $height)
             {
             $new_width = $szer;
             $new_height = $szer / $proporcja;
             }
         else
             {
             $new_height = $wys;
             $new_width = $wys / $proporcja;
             }
         $obraz_nowy = imagecreatetruecolor($new_width, $new_height);
         $temp = imagecreatefromjpeg($plik_tmp);
         imagecopyresampled($obraz_nowy, $temp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    
         imagejpeg($obraz_nowy, $plik_tmp, 100);
         imagedestroy($temp);
        
         print "<font face='Verdana' color='white'>Zdjęcie zostało dodane</font>
";
     }
     return $plik_tmp;
}    
move_uploaded_file(zmrozdz($plik_tmp, 300, 300), "zdjecia/$plik_nazwa");
move_uploaded_file(zmrozdz($plik_tmp, 1024, 1024), "zdjecia/duze/$plik_nazwa");


print "<font face='Verdana' color='white'><a href='index.php'>Powrót do galerii</a></font>";
?>
Go to the top of the page
+Quote Post
nospor
post 19.02.2009, 08:41:31
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




move_uploaded_file() ma to do siebie, ze przenosi plik z jednego miejsca na drugie.
Rozumiesz na czym polega przeniesc cos? Bierzesz wazon z okna i przenosisz na stol. Wazon juz na oknie nie stoi, wiec nie mozesz go poraz drugi przeniesc z okna na inny stol winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mati85
post 19.02.2009, 08:55:15
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 21.01.2009

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


Ok, kumam.
Dzięki za zauważenie błędu.

A czy lepiej to rozwiązać, że zrobić kopie tego pliku i 2 razy przenieść, czy raz przenieść i później zrobić kopie w inne miejsce ze zmianą rozdzielczości, bo nie doszukałem się funkcji w style "copy_uploaded_file"
Go to the top of the page
+Quote Post
nospor
post 19.02.2009, 08:58:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




masz kilka opcji to wyboru.

Pozatym popelniasz jeszcze jeden powazny blad, a mianowicie: zmieniasz rozmiar obrazka a nowy obrazek zapisujesz w miejsce starego. Potem znowu zmieniasz rozmiar obrazka, ale operujesz juz na zmienionym wczesniej i znowu zapisujesz w ten sam obrazek.

Obrazki o zmienionych rozmiarach musisz zapisywac pod inną nazwą, a najlepiej zapisuj tam, gdzie docelowo mają sie znaleźć. Nie bedziesz musial juz tego potem dodatkowo przenosic

ps: oprócz tych zmienionych obrazkow, warto też jest przechowywać oryginał
ps2: http://pl.php.net/manual/en/function.copy.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:37