[php] naložitev slike (ponavljanje)
2 naročnika
2 naročnika
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...