php rename
 
reklamist 15. jun 2010 19:58:40 Pridružen od:
15. jan 2009
944 objav
873 106 8
#1

Pozdravljen!

Imam formo kjer uporabnik naloži tri slike, da se katera od slik ne prepiše zaradi istega imena,bi moral vsako uploadano sliko preimenovati, da ima unique filename.



Problem pa nastane, ker prva uploadana slika, mora ustrezati določeni dolžini, če ne ustreza potem uporabniku napiše sporočilo.



Zaenkrat imam takole in zadeva deluje


if(isset($_POST['submit'])) {
$target=$_SERVER['DOCUMENT_ROOT']."/slike";
foreach ($_FILES["slika"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["slika"]["tmp_name"][$key];
$name = $_FILES["slika"]["name"][$key];

move_uploaded_file($tmp_name, "$target/$name");
$slika_izdelka = $_FILES["slika"]["name"]["0"];
list($sirina,$dolzina,$tip,$attr) = getimagesize("$target/$slika_izdelka");
}
}

if(!empty($_FILES["slika"]["name"]["0"]) && ($dolzina <= 800)){
echo "<div class=\"sporocilo_napaka\"><p style=\"text-align: center;\">Dolžina slike je manjša od dovoljene!</p></div>";
}
if(empty($_FILES["slika"]["name"]["0"])){
echo "<div class=\"sporocilo_napaka\"><p style=\"text-align: center;\">Niste naložili slike izdelka!</p></div>";
}
if(empty($_FILES["slika"]["name"]["1"])){
echo "<div class=\"sporocilo_napaka\"><p style=\"text-align: center;\">Niste naložili logotipa podjetja!</p></div>";
}
if(!empty($_FILES["slika"]["name"]["0"]) && ($dolzina >= 800) && !empty($_FILES["slika"]["name"]["1"])){
echo "<div class=\"sporocilo_ok\"><p style=\"text-align: center;\">Datoteke uspešno shranjene!</p></div>";
}
}

Ampak na ta način, slika ki je uploadana ne dobi unique filenamea. Kako bi lahko rešil to, da bi sliko preimenoval dobil path te preimenovane slike in ga primerjal z določeno spremeljivko.


všeč(0) ni všeč(0) spam(0)
In clickbait we trust.
 
schtr4jh 15. jun 2010 20:20:30 Pridružen od:
24. nov 2008
402 objav
322 33 4
#2

Poskusi z: moveuploadedfile($tmpname, $target."/".sha1().".".substr($tmpname, strrpos($tmp_name, '.')));


všeč(0) ni všeč(1) spam(0)
 
reklamist 15. jun 2010 20:38:24 Pridružen od:
15. jan 2009
944 objav
873 106 8
#3

schtr4jh, to kar se tiče kreiranja unique namea mi je jasno, nevem pa kako bi lahko potem spravil ta unique filename od $_FILES["slika"]["name"]["0"] v funkcijo getimagesize.


všeč(0) ni všeč(0) spam(0)
In clickbait we trust.
 
schtr4jh 15. jun 2010 20:41:45 Pridružen od:
24. nov 2008
402 objav
322 33 4
#4

$novoIme = sha1().".".substr($tmpname, strrpos($tmpname, '.'));

moveuploadedfile($tmp_name, $target."/".$novoIme);

list($sirina,$dolzina,$tip,$attr) = getimagesize($target."/".$novoIme);



Spet sfalil rešitev?


všeč(2) ni všeč(1) spam(0)
 
reklamist 15. jun 2010 22:05:13 Pridružen od:
15. jan 2009
944 objav
873 106 8
#5

schtr4jh, hvala mi je uspelo sedaj


$novoIme = $uporabnik."_".sha1(rand() * time()).".".substr($name, strrpos($name, '.') +1);      
move_uploaded_file($tmp_name, $target."/".$novoIme);
list($sirina,$dolzina,$tip,$attr) = getimagesize($target."/".$novoIme);
všeč(1) ni všeč(0) spam(0)
In clickbait we trust.
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se