[php] naložitev slike (ponavljanje)
 
juresl 30. jan 2008 13:01:33 Pridružen od:
16. avg 2007
209 objav
74 23 4
#1

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";
}
}

}
}

}
?>
všeč(0) ni všeč(0) spam(0)
 
Vini 30. jan 2008 13:01:39 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

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...


všeč(0) ni všeč(0) spam(0)
 
juresl 30. jan 2008 14:01:50 Pridružen od:
16. avg 2007
209 objav
74 23 4
#3

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;
}
všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se