[php] naložitev slike (ponavljanje)

Upam, da nisem podvojil teme. Imam skripto, katera naloži sliko v določen direktori. Muči me samo, kako bi naredo, da bi ime spremenil v cifre? Ker če se ime slike ponovi se stvar zamenja. Lp, Jure :)

<?php
// Povezava z podatkovno bazo
include "povezava.php";

// Obrazec za pridobitev slike
echo "<form method='post' enctype='multipart/form-data'>";
echo "<input type='file' name='datoteka[]'/><br />";
echo "<input type='submit' name='akcija' value='Nalozi'/>";
echo "</form>";

if ($_POST['akcija']) {

// Spremenljivke
$pot = "C:\\wamp\\www\\";
$thumbs = "C:\\wamp\\www\\slike\\avatarji\\";
$slike = "http://localhost/slike/avatarji/";
$velikost = 524288;
$sirina = 96;

for ($i = 0; $i < count($_FILES['datoteka']['name']); $i++) {
    if ($_FILES['datoteka']['name'][$i] != "") {

   if ($_FILES['datoteka']['size'][$i] > $velikost) {
       unlink($_FILES['datoteka']['tmp_name'][$i]);
       print "Datoteka je prevelika!<br />\n";

   } else {
      if ($_FILES['datoteka']['type'][$i] != "image/jpeg"
      AND $_FILES['datoteka']['type'][$i] != "image/pjpeg"
      AND $_FILES['datoteka']['type'][$i] != "image/png"
      AND $_FILES['datoteka']['type'][$i] != "image/x-png"
      AND $_FILES['datoteka']['type'][$i] != "image/gif") {

          unlink($_FILES['datoteka']['tmp_name'][$i]);
          print "Datoteka ni dovoljenega formata!<br />\n";
      } else {
         move_uploaded_file($_FILES['datoteka']['tmp_name'][$i],$pot.$_FILES['datoteka']['name'][$i]);

   // Izdelava pomanjšave

   if ($_FILES['datoteka']['type'][$i] == "image/jpeg"
   OR $_FILES['datoteka']['type'][$i] == "image/pjpeg") {
      $original = imagecreatefromjpeg($pot.$_FILES['datoteka']['name'][$i]);
   }
   if ($_FILES['datoteka']['type'][$i] == "image/png"
   OR $_FILES['datoteka']['type'][$i] == "image/x-png") {
      $original = imagecreatefrompng($pot.$_FILES['datoteka']['name'][$i]);
   }
   if ($_FILES['datoteka']['type'][$i] == "image/gif") {
      $original = imagecreatefromgif($pot.$_FILES['datoteka']['name'][$i]);
   }

   $razmerje = imagesx($original) / imagesy($original);
   $visina = $sirina / $razmerje;

   $kopija = imagecreatetruecolor($sirina,$visina);
   imagecopyresampled($kopija,$original,0,0,0,0,$sirina,$visina,imagesx($original),imagesy($original));
   @unlink($pot.$_FILES['datoteka']['name'][$i]);

   if ($_FILES['datoteka']['type'][$i] == "image/jpeg"
   OR $_FILES['datoteka']['type'][$i] == "image/pjpeg") {
      imagejpeg($kopija,$thumbs.$_FILES['datoteka']['name'][$i]);
   }
   if ($_FILES['datoteka']['type'][$i] == "image/png"
   OR $_FILES['datoteka']['type'][$i] == "image/x-png") {
      imagepng($kopija,$thumbs.$_FILES['datoteka']['name'][$i]);
   }
   if ($_FILES['datoteka']['type'][$i] == "image/gif") {
      imagegif($kopija,$thumbs.$_FILES['datoteka']['name'][$i]);
   }

   imagedestroy($original);
   imagedestroy($kopija);

// Konec kode za izdelavo pomanjšave
// Izpis slike
echo "<div style='background-image:url($slike{$_FILES['datoteka']['name'][$i]}); width:96px; height:96px;'><img src='http://zmaga.com/slike/obroba.gif' /></div>\n";
      }
   }

    }
}

}
?>

2 odgovora

Kljucna je naslednja vrstica:

move_uploaded_file($_FILES['datoteka']['tmp_name'][$i],$pot.$_FILES['datoteka']['name'][$i]);

Tukaj si lahko izberes ciljno ime datoteke, dolocis ga v drugem parametru te funkcije. Seveda moras potem pri kasnejsem resizanju to novo ime tudi upostevati...

Zadeva rešena:

function word() {
  $length = 8;                                       //koliko znakov
  $pattern = "1234567890abcdefghijklmnopqrstuvwxyz"; //možni znaki

  for ($i = 0; $i < $length; $i++) {
    if (isset ($key)) $key .= $pattern{rand (0, 35)};else $key = $pattern{rand (0, 35)};
  }

  return $key;
}