képfeltöltő,
Üdv!
Csináltunk suliba egy kép feltöltőt használnám is a weblabomon jól működik csak egy apróság van, hogy lehet azt kivédeni hogy ha én felrakok egy képet akkor azt más ugyanazzal a fájl névvel,ne tudjon felrakni (így ne tudja az ő képit cserélni)?Köszönöm előre is!
■ Csináltunk suliba egy kép feltöltőt használnám is a weblabomon jól működik csak egy apróság van, hogy lehet azt kivédeni hogy ha én felrakok egy képet akkor azt más ugyanazzal a fájl névvel,ne tudjon felrakni (így ne tudja az ő képit cserélni)?
<html>
<body bgcolor="336699"><font color="ffffff">
<form method="POST" enctype="multipart/form-data">
<input type="file" name="kep" />
<input type="Submit" name="submit" value="Feltöltés">
</form>
<?php
function removeaccent($str){
$search = array("á", "é", "í", "ó", "ö", "ő", "ú", "ü", "ű", " ");
$replace = array("a", "e", "i", "o", "o", "o", "u", "u", "u", "_");
return str_replace($search, $replace, $str);
}
$types = array("jpg", "jpeg", "gif", "png"); // engedélyezett kiterjesztések
$maxsize = 3145728; // maximális méret (1 MB)1048576
$target = "upload"; // végleges hely
// feltöltés ellenőrzése
if ($_FILES["kep"]["name"] == ""){
print "Nem töltöttél fel képet!";
echo('<br>');
}
else{
$upload = true;
$name = removeaccent($_FILES["kep"]["name"]);
// kiterjesztés ellenőrzése
$ext = strtolower(array_pop(explode(".", $name)));
if (!in_array($ext, $types)){
print "Csak kép tölthető fel!";
$upload = false;
}
// méret ellenőrzése
if ($_FILES["kep"]["size"] > $maxsize){
print "Túl nagy a fájl mérete!";
$upload = false;
}
// áthelyezés
if ($upload){
move_uploaded_file($_FILES["kep"]["tmp_name"], $target."/".$name);
}
}
print("Név: ").($name).('<br>');
print("Méret: ").($_FILES[kep][size]).('<br>');
print("Típus: ").($_FILES[kep][type]).('<br>');
echo("<a href=$target/$name><input type=button value=Megtekint></a>");
?>
</font></body></html>
Ellenőrizni
file_exists
rendben köszönöm, de esetleg
Köszönöm előre is!
Ha kódot most nem is,
Az említett file_exists fv-el azt a
$target."/".$name
fájlnevet ellenőrizd, ami az átmozgatás célja. Ha létezik (true), dobj hasonló hibaüzit, mint az előtte levő ellenőrzésekkor.Ékezetes karakterek cseréje: ha biztosra akarsz menni (ugye igen!), akkor jobb megoldás a megengedett karaktereket tenni egy tömbbe, a feltöltött fájlnéven végigiterálsz karakterenként, és ami nincs a megengedett tömbben, azt kicseréled vmire vagy törlöd. (Vagy, ha rövidpórázt adsz csak a Júzernek, akkor visszadobod hibaüzivel, de ez nem felhasználóbarát.)
Szerintem mindig adj hozzá
Ettől függetlenül a bejelentkezett tagok számára létezhet saját könyvtár, oda csak ők tölthetnek fel és ami abban van azt felülírhatják. De ez gondolom egy későbbi bővítés lenne.
A removeaccent() függvény lehet kissé naiv meg kissé hiányos.
Ékezetmentesítés (és egyéb különleges karakterek)
nálunk így szokás
Kurta
strtolower
esetleg).thnx
Köszönöm a válaszokat és a
Kicsit megkésve de sajnos weblapot kellet költöztetni ami nem kis munka.