Pereiti prie turinio

PHP - kaip nustatyti uploadinamo image rezoliucijos limitą?


Rekomenduojami pranešimai

Paveikslėliai uplaodinami per tokią paprastą formą:

 

<form action="" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
---------------------------------------
if (file_exists("upload/" . $_FILES["file"]["name"]))
     {
     echo $_FILES["file"]["name"] . " already exists. ";
     }
   else
     {
     move_uploaded_file($_FILES["file"]["tmp_name"],
     "upload/" . $_FILES["file"]["name"]);
     }

 

kaip padaryti, kad keliant image'us, kurių width yra daugiau už 1000 arba height daugiau už 800, juos automatiškai sumažintų iki ribinio dydžio?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Paveikslėliai uplaodinami per tokią paprastą formą:

 

<form action="" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
---------------------------------------
if (file_exists("upload/" . $_FILES["file"]["name"]))
     {
     echo $_FILES["file"]["name"] . " already exists. ";
     }
   else
     {
     move_uploaded_file($_FILES["file"]["tmp_name"],
     "upload/" . $_FILES["file"]["name"]);
     }

 

kaip padaryti, kad keliant image'us, kurių width yra daugiau už 1000 arba height daugiau už 800, juos automatiškai sumažintų iki ribinio dydžio?

 

Su šiuo scriptu labai lengvai keliasi shell'ai į serverį :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su šiuo scriptu labai lengvai keliasi shell'ai į serverį :)

Žinau, pas mane apsaugota. Tiesiog paėmiau default'inį kodo fragmentą, kad būtų lengviau suprast, apie ką kalba eina. :)

 

Su šia f-ja, kaip supratau, eina tik išgauti image'o info. Pvz, išgausi, kad ilgis yra $x ir tada dydį galėsi pakeisti nebent atvaizduodamas: <img src='...' width='$x / 10'... ar kažkas panašaus. O man reikia, kad pakeistų pačio image'o, kuris yra serveryje, matmenis.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Rezoliucijos limitui nustatyti yra mažiausiai du būdai: naudotis arba ImageMagick, arba GD funkcijomis. Manau, ImageMagick yra patogiausias būdas tam atlikti (tik jame yra viena spraga - didoki memory leak'ai). Tokiu atveju tiesiog užtektų įkelti paveikslėlį į serverį ir tuomet pakeisti jo dydį. Tam galima taikyti thumbnailImage() metodą. Jis yra aprašytas štai čia: http://php.net/manual/en/imagick.thumbnailimage.php. Taip pat yra komentarų su pavyzdžiais, kaip šį metodą naudoti. Dabar kitas būdas - naudojant GD. Tam yra skirta funkcija imagecopyresampled(), kurios aprašymą ir naudojimo pavyzdį galima rasti čia: http://lt.php.net/imagecopyresampled.

 

Na ir toks pastebėjimas. Negalima įkelti paveikslėlių vienodu vardu. Pagal paveikslėlio vardą identiškumo tikrai nepatikrinsi. Gal aš kelsiu per tavo formą dramblys.jpg du kartus iš dviejų folder'ių. Viename folder'yje laikysiu afrikinio dramblio nuotrauką, o kitame - azijinio. Paveikslėliai nebus identiški, bet jų įkelti nebus galima, nes sistema neleis dėl vienodų failų pavadinimų.

Redagavo topsas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Rezoliucijos limitui nustatyti yra mažiausiai du būdai: naudotis arba ImageMagick, arba GD funkcijomis. Manau, ImageMagick yra patogiausias būdas tam atlikti (tik jame yra viena spraga - didoki memory leak'ai). Tokiu atveju tiesiog užtektų įkelti paveikslėlį į serverį ir tuomet pakeisti jo dydį. Tam galima taikyti thumbnailImage() metodą. Jis yra aprašytas štai čia: http://php.net/manual/en/imagick.thumbnailimage.php. Taip pat yra komentarų su pavyzdžiais, kaip šį metodą naudoti. Dabar kitas būdas - naudojant GD. Tam yra skirta funkcija imagecopyresampled(), kurios aprašymą ir naudojimo pavyzdį galima rasti čia: http://lt.php.net/imagecopyresampled.

 

Na ir toks pastebėjimas. Negalima įkelti paveikslėlių vienodu vardu. Pagal paveikslėlio vardą identiškumo tikrai nepatikrinsi. Gal aš kelsiu per tavo formą dramblys.jpg du kartus iš dviejų folder'ių. Viename folder'yje laikysiu afrikinio dramblio nuotrauką, o kitame - azijinio. Paveikslėliai nebus identiški, bet jų įkelti nebus galima, nes sistema neleis dėl vienodų failų pavadinimų.

Ačiū :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...