Képfeltöltés
Hello!
Képet szeretnék feltölteni a felhasználó gépéről a tárhelyemre. Ezt egy formmal, ahol egy textmezőbe kiválasztja a felhasználó a feltöltendő kép path-ját. A kiválasztott képnek pedig egy a submit gomb lenyomása után a tárhelyemen az images mappába kéne kerülnie.
Valaki tud nekem segíteni, hogy ezt hogy lehet megcsinálni (vagy esetleg scriptet adni)?
■ Képet szeretnék feltölteni a felhasználó gépéről a tárhelyemre. Ezt egy formmal, ahol egy textmezőbe kiválasztja a felhasználó a feltöltendő kép path-ját. A kiválasztott képnek pedig egy a submit gomb lenyomása után a tárhelyemen az images mappába kéne kerülnie.
Valaki tud nekem segíteni, hogy ezt hogy lehet megcsinálni (vagy esetleg scriptet adni)?
Man
PHP: Fájlfeltöltés kezelése - Manual
http://www.php.net/manual/hu/features.file-upload.php
Attila
probléma
Mi lehet a probléma?
Online kipróbálható: http://gytk.atw.hu/includes/forum/reg_link.php
(de úgyse láttok semmit, csak hogy nem csinál semmit :( )
fajl feltöltés
tmp könyvtár
Re: probléma
Pl.
copy
helyettmove_uploaded_file
.Másrészt én elsőnek néznék egy
phpinfo()
-t, hogy mekkora fájlokat enged feltölteni, ha nincsphpinfo()
, akkor pl.ini_get()
:echo ini_get('upload_max_filesize');
A fenti kód helyett először érdemes lehet nézni egy
var_dump($_FILES);
-t hogy megérkezik-e egyáltalán a feltöltött fájl.Attila
Köszönet!
Köszönöm még1x!
Danci
Form:
upload
---------------
upload.php tartalma
----------------
filetype.txt tartalma
Beállítási lehetőségek:
$imagesonly = false; -> true / false: megadja, hogy csak képet lehessen-e feltölteni
$basedir = "."; -> A célkönyvtárak listázánál használt alapkönyvtár
$filetypesinf = "filetypes.txt"; -> A feltölthető filetípusokat tartalmazó file neve
$allowfiletyopesonly = true; -> Csak a fentebb megadott fileban leírt filetípusok feltöltésének engedélyezése
ISMERT BUG-ok:
A filetypesinf-ben megadott file utolsó sorának mindig üresnek kell lenni, különben az utolsó sorban leírt filetípust nem engedi feltölteni...
újra itt
Mint mondtam a képfeltöltés megoldódott, ám amikor a képet ki akarom tenni a weblapra (most éppen a fórumba), akkor nem jelenik meg a kép, pedig az elérési út jó! Tapasztaltam, hogy olyan kép, amit nem az SQL adatbázisból hívok le, az viszont megjelenik a lapon.
Ebből nem tudom, hogy mit értettetek, de itt a script lényeges része:
$i = 1;
while ($user_tomb = mysql_fetch_array($user_lekerd_eredm)) {
$login_tomb[$i] = $user_tomb['login'];
$kep_tomb[$i] = $user_tomb['image'];
$i++;
}
...
if ( $hsz_bekuldoje == $login_tomb[$i] ) {
$kep_kiir=$user_images_feltolt_path ."/" .$kep_tomb[$i];
$i = $z;
} else {
$kep_kiir=$user_images_feltolt_path ."/nemreg.jpg";
}
Miért van, hogy az SQL adatbázisból vett kép nem jelenik meg, mikor jó az elérési útja?
Online: http://users.atw.hu/gytk/includes/forum/temalista_link.php
(bármelyik témára kattintva)
Danci
Képfeltöltő
Ismerek egy egyszerű képfeltöltőt, de én olyat szeretnék, hogy ha tallózok egy képet, azt gombra kattintás nélkül (mikor rákattintok a megnyitásra) jelenítse meg, majd ha rákattint a feltöltésre, akkor hajtsa végre a műveletet.
Tudtok segíteni?
Flash, Java, Silverlight
képtípus ellenőrzése
Ezt próbálom erőltetni, tehát nézze meg, hogy .jpg a fájl, ha nem akkor kiírja hibaüzenetet. De akárhogy változtatom az utasítást mindig kiszáll hibaüzenettel, hiába töltök jpg fájlt.
if ($_FILES["pix"]["type"] !== "image/jpg")
{
echo "A file nem kép típusú. Tölts fel másikat";
exit();
}
Nem jó
virusosfajl.exe.jpg
-ve, és akkor te szépen el fogod fogadni, ami nem szerencsés. Használd inkább a GD2 függvényeket a fájltípus ellenőrzésére.A másik dolog, ha már a
type
-ot ellenőrzöd, akkor nézd már meg, a böngészők milyen MIME type-ot adnak vissza JPEG fájlok eseténköszi a választ, a MIME
GD2 függvényeket abszolút nem ismerem, nem is tudom mennyire szűrik ki jobban a képbe rejtett vírusokat mint ez a módszer.
Nem kép
image/jpg
MIME típussal (egyébként a szabvány szerint ennekimage/jpeg
-nek kellene lennie), és akkor te ezt boldogan feltöltöd a szerveredre. Ezzel nagy biztonsági rést hagysz az oldalon (mivel még a fájl kiterjesztést se ellenőrzöd).Ekkor tegyük fel, hogy valaki feltölt a szerverre egy PHP fájlt, mivel te nem ellenőrzöd csak azt az adatot amit a böngésző küld, és amit meg lehet hamisítani. És ha már fel tudta tölteni a PHP fájlt
.php
kiterjesztéssel, akkor tudja futtatni a szervereden, így újabb PHP fájlokat, vírusokat stb. tud a szerveredre juttatni, ezzel teljesen átvéve a hatalmat a szervered felett. A másik, hogy tegyük fel egy EXE fájlt tölt fel a fenti módszerrel a.exe
kiterjesztést is megtartva, majd belinkeli a fájlt egy másik oldalra. Így előbb-utóbb a Google számára is nyilvános lesz, hogy a te oldalad vírusos, így azokban a böngészőkben, amelyek a Google és más feketelistákra támaszkodnak, meg fogják tagadni a te oldaladra való látogatást.A getimagesize és exif_imagetype használatával meg tudod állapítani, hogy az illető fájl kép-e, és hogy milyen típusú.
Manual
De persze először is azokat a függvényeket, miket Poetro írt.