Szia!
Folyamatjelzos megoldast csak ott lehet, ahol tamogatja a bongeszo es a szerver is. AJAX alapon egy pelda:
Nem találsz valamit?
Keress rá!
Gyorsgombok:
A WebPillangó elsődleges célja minőségi leírásokat biztosítani a következő témákban:
Photoshop és tartozékai
webfejlesztés: grafika, sitebuild és programozás
Egy másik cél a látogatók tapasztalat és véleménycseréjét biztosítani!
A leírásban azt fogom bemutatni, hogy hogyan lehet elkészíteni egy egyszerű képfeltöltő rendszert PHP-ban. Először is, készítsük el az alábbi mappastruktúrát:
az “upload_files” mappa fogja tárolni a feltöltő rendszert, kód szempontjából mindegy, hogy mi a neve.
Az “uploads” mappa ad helyet a feltöltött fájljainknak, az “upload.php” pedig a rendszer motorjaként szolgál.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Fajlok feltoltese php-val</title> </head> <body> <form enctype="multipart/form-data" action="" method="post" /> <input type="hidden" name="MAX_FILE_SIZE" value="3000000" /> <!--a feltöltött file maximális mérete 3mb--> <label for="file"> Válassz egy fájlt!</label><input id="file" type="file" name="file" /> <input type="submit" name="submit" value="Feltöltés!" /> </body> </html> |
Így néz ki:
Elérkezett az izgalmas rész, mégpedig a PHP kód megírása. A következő kódot illesszük a HTML forrás elejére:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < ?php if(isset($_POST['submit'])) { //ha megnyomtuk a feltöltés gombot $target= "uploads/"; //célmappa $file_name = $_FILES['file']['name']; //a célfájlt nevezze el a $_FILES superglobal változóban lévo fájlnévre (a fájl eredeti nevére) $tmp_dir = $_FILES['file']['tmp_name']; //az ideiglenes mappa helyét a $tmp_dir változóban tároljuk if(!preg_match('/(gif|jpe?g|png)$/i', $file_name)) //ha a fájlnak ($file_name-nek) a kiterjesztése nem gif, jpg/jpeg, png, akkor... { echo "Rossz fajltipus!"; //... "dobjon el" egy hibát } else { move_uploaded_file($tmp_dir, $target . $file_name); //az ideiglenes mappából átteszi a fájlt a végleges mappába (a $target . $file_name összeilleszti a két stringet, így uploads/fajlnev-et kapunk) $feltoltve = true; //a feltoltve változó true értéket kap } } ?> |
Ahogy látható, lekorlátozzuk a feltölthető fájlokat képekre (gif-re, jpg/jpeg-re, png-re) a preg_match-et használva, tehát ha a fájl végén nem gif, jp(e)g vagy png van, akkor Rossz fájltípusra hivatkozva
meghíusul a feltöltés.
Most pedig vissza kell jeleznünk valamit a felhasználónak, tehát:
1 2 3 4 5 6 | < ?php if($feltoltve) { $utvonal = $target . $file_name; echo "Sikeresen feltöltötted a képet, megnézheted <a href="$utvonal">itt< /a>!"; } ?> |
A végeredmény, ha a fájlt sikerült feltölteni:
Uha. Ez már nagyon messze van tőlem. Esetleg tudnál adni egy leírást, hogy merre induljak el Ajax ügyben? Konkétabban, hogyan lehet ezt beilleszteni egy weboldal felületébe, és mi kell ahhoz, hogy szerver ajax támogatással bírjon. Ezt a plugint kell nekem még szerkesztenem valamennyire, vagy ez használható is egyből, csak be kell ileszteni? Ahogy gyorsan utánnaolvastam, kell egy keretrendszer a szerkesztéséhez.
Üdv,
Szép és áttekinthető leírás.
Kérdésem lenne. Megoldható az valahogy, hogy a feltöltött képet máshol megjelenítsük?
Konkrétan egy hirdető weboldalra gondoltam, ahol valaki feltölt valamit, és az meg is jelenjen…
Webshop szerű dolog lenne ez…
Előre is köszi a választ!
Hali! Letöltöttem ezt a kis kiegészítést. ATW.hu tárhelyen vagyok most. Ha simán feltöltöm az FTP-re majd urlből bepötyögöm oldalam.akár.stb/upload.. akkor szépen bejön és fel is tudok tölteni, nagyon jó.
Nekem viszont lenne egy file.php-m, amibe ezt bele akarom tenni egy űrlapom van. Sajnos hiába próbálkozok vele nem akar összejöni. Bele bele teszi látom ott van de amikor a feltöltésre megyek akkor nuku semmi, nem tölt fel semmit. Hogy lehet ezt orvosolni ?
Üdv, szép kis leírás, teljesen érthető. Egy megoldásra tanácsot szeretnék kérni. Van egy üres adatbázis. Készítettem egy “űrlapot” ahol képet is kell feltölteni. Namost ha valaki rámegy a “submit”-ra akkor feltöltődik minden kitöltött adat
az adatbázisba(kap egy VKOD-ot ami egy számláló) és ez a VKOD alapján nevezzel el a képet abba a mappába ahova feltölttötte. Ha van valamilyen tipped , megköszönöm!?^^
Sziasztok!
Freewebes honlapra szeretném megcsinálni ezt a képfeltöltést de nem sikerül itt is van tmp mappa meg web mappa a web mappába kell berakni az oldalakat ugye arra már rájöttem hogy a tárheynél elő kellett fizetnem h engedélyezve legyen a php és azt mostmár meg is nyitja meg a feltöltés gomb is működik csak éppen nem tölti fel a képeket hiába teszem bele a tmp mappába a mappaösszeállítást hozzászólásba olvastam h valakinek sikerült atwn ahol szintén ilyen tmp mappa is van…Tudtok ebbe segíteni hogy amit letöltök mappaszerkezetet az hova rakjam vagy h a php ba kell e vmit átírni vagy hogy működhetne? nekem olyan megoldás is jó lenne h ha e-mailbe küldené el nekem a képet ha az egyszerűbb nemtudom kezdő vagyok még! 😀 Köszi előre is!
Szia. nagyon köszi, viszont az lenne a kérdésem hogyha én szeretném azt megcsinálni hogy a feltöltött kép fájlneve a feltöltéskor megvátozzon, méghozzá a feltöltő regisztrál felhazsnálónevére. egy wordpresses oldalba szeretném beépíteni. tehát ha a regisztrált felhasználó neve “jozsi123” akkor a feltöltött fájlt “Jozsi123.png”-re nevezze át.
Tudnál erre egy megoldást nekem, nagy segítség lenne 🙂
Köszi, üdv: Rob
nem megy 🙁 Szerver hibát ír ki mindig. Fontos hogy arra a névre nevezze át amivel a felhasználó regisztrált, tehát a felhasználónevére. Nem avatar miatt, hanem egy külső alkalmazáshoz kellenek a képek. mert a külső alkalmazás úgy köti a felhasználóhoz a képet hogy a feltöltött képek útvonaláról olvassa be. tehát weboldal/uploads/%username.png
Üdv! Teljesen jól működik a kód köszönöm. Az lenne a kérdésem, hogy mit kéne alakítani rajt több fájl feltöltéséhez? Mert ezzel egyszerre csak 1 darabot enged feltölteni.
Sziasztok!
Nagyon jó a leírás de én béna vagyok hozzá.
Szeretnék egy nagyon egyszerű oldalt. Annyi lenne az egész, hogy egy képfeltöltés és a feltöltött kép jelenjen meg közvetlenül alatta. Megoldható ez? Tud benne valaki segíteni?? Előre is köszi
Hali! Tökéletesen működő script, köszi! ez egy alap cucc, én még fejlesztgetek rajta, de kiindulásnak kiváló! Nagyon köszi érte!
Hali!
Esetleg valami folyamat jelzővel ki lehetne valahogyan egészíteni? Mert nagy méretű file-ok esetén, jó lenne, ha adna valami visszajelzést, hogy hol tart a feltöltés.
Köszi!
Üdv.