php+mysql+kepfeltoltes
Sziasztok !
Szerentek kepet feltolteni php bol mysqlbe. ott csak a file nevet tarolni. Sajnos elakadtam. Megvan a formom, minden adatot be tudok vinni az adatbazisba, kiveltel a kepet. Hogyan toltodjon fel a kep ill. hogyan taroljam annak a nevet?
Elore is koszonom a segitsegeteket!
Tamas
■ Szerentek kepet feltolteni php bol mysqlbe. ott csak a file nevet tarolni. Sajnos elakadtam. Megvan a formom, minden adatot be tudok vinni az adatbazisba, kiveltel a kepet. Hogyan toltodjon fel a kep ill. hogyan taroljam annak a nevet?
Elore is koszonom a segitsegeteket!
Tamas
egy teljes file
Ami fontos:
a form elejébe be kell tenni, hogy enctype="multipart/form-data"
pl.
echo "<form name=\"register\" enctype=\"multipart/form-data\" method=\"post\" action=\"x.php?m=admin&f=kep_feltolt\">";
a filefeltöltő elem:
echo "<input class=\"input\" type=\"file\" name=\"nagykep\">";
ezek után a gombra kattintás után a file path-ét, ami a feltöltés után a temp-be kerül a $nagykep változó fogja tartalmazni (tehát a file elem name tagja)
Innen a file neve: $nev = $nagykep_name
az _name és társai előre definiáltak.
Utána átmásolod a file-t a megfelelő helyre (copy () ), törlöd temp-ben levőt (unlink ($nagykep) ) és az sql-be beszúrod a megfelelő mezőbe hog = $nev
és készen is van.
Szia Cadeyrn. le tudnad ne
le tudnad nekem egy picit teljesebben irni, hogy hogyan is gondolod ezt az egeszet? az elejet ertem a feltoltest (a multipart/form-data-t en is betettem)
csak az utana valo reszek nem teisztak. $nev, $nagykep_name, unlink...etc.
Koszi
Tamas
RTFM
Magadnak mondasz ellent. Most a kép magát is szeretnéd adatbázisban tárolni, vagy csupán a nevét, a képet pedig fájlként feltölteni?
Egyébiránt RTFM, avagy kérlek olvasd el a kapcsolódó irodalmat: Fejezet 20. Fájlfeltöltés kezelése
--
slink
go create
http://blog.lxp.hu/
ha jo ertem, hogy db-be akarod rakni a kepet
id int(3) unsigned NOT NULL auto_increment,
cim varchar(30) default NULL,
kep longblob,
PRIMARY KEY (id),
UNIQUE KEY id (id),
KEY id_2 (id)
) TYPE=MyISAM;
<?php
$fajl='kep.jpg';
$kepfajl = fopen($fajl, "rb") or die( "Fájl nem elérhető!" );
$kep_adat=fread($kepfajl,filesize($fajl));
$kep_adat=addslashes($kep_adat);
$sql ="INSERT INTO kepek (cim,kep) VALUES ('Kép cime','$kep_adat')" ;
$kapcsolat=mysql_connect('localhost', 'root', 'jelszo') or die("Nem sikerült az adatbázisszervehez csatlakozni, MySQL hiba_zenet:" . mysql_error());
mysql_select_db('proba') or die("Nem sikerult az adatbazist elerni, MySQL hibaüzenet:" . mysql_error());
$eredm = mysql_query($sql) or die("Nem sikerült a lekérdezés, MySQL hibaüzenet:" . mysql_error());
$sql = "SELECT * FROM kepek WHERE id=1";
$result = @mysql_query($sql) or exit("Nem sikerült!");
$kep = @mysql_result($result,0,"kep");
header("Content-type: image/jpg");
echo $kep;
mysql_close($kapcsolat);
?>
Szia ! Azt szeretnem elern
Azt szeretnem elerni, ha valaki feltolt 1 kepet, akkor az masolodjon fel a szerverre mondjuk az "img konyvtarba" (img/valami.jpg). az sql pedig csak a file nevet es helyet tartalmazza pl: "img/valami.jpg"
Tamas
időhiány per pill
Nincs időm kibogarászni a lényeget, mert ma nagyon rohanok, de itt egy teljes példa, ami csak a kép nevét tárolja el, a patht/urlt nem.
Amint lesz egy kis időm átrágom magam rajta, hogy könnyebben érthető legyen.
Adios,
Cadeyrn
<?php
if (@is_string($_SESSION['username']))
{
if (@is_string($_SESSION['jogok']))
{
echo "<form name=\"register\" enctype=\"multipart/form-data\" method=\"post\" action=\"x.php?m=admin&f=kep_feltolt\">
<table width=\"90%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" summary=\"\">
<tr>
<td colspan=\"2\" align=\"center\"><h2>Rajz, kép vagy fotó feltöltése</h2><br></td>
</tr>
<tr>
<td width=\"50%\">Cím vagy leírás: (ha akarod, csak akkor töltsd ki)</td>
<td width=\"50%\"><input name=\"cim\" type=\"text\" class=\"input\" size=\"30\"></td>
</tr>
<tr>
<td width=\"50%\">Készítés helye: (ha akarod, csak akkor töltsd ki)</td>
<td width=\"50%\"><input name=\"hely\" type=\"text\" class=\"input\" size=\"30\"></td>
</tr>
<tr>
<td>Rendes kép:</td>
<td><input class=\"input\" type=\"file\" name=\"nagykep\"></td>
</tr>
<tr>
<td align=\"center\" colspan=\"2\"><input class=\"button\" type=\"submit\" value=\"Mehet\" name=\"submitbutton\">
<input class=\"input\" type=\"hidden\" name=\"user\" value=\"".$_SESSION["username"]."\">
</td></tr>
</table>
</form>";
if (isset($submitbutton))
{
$usr = strtolower($_SESSION["username"]);
$tabla = "".$usr."_kepek";
$test = "SELECT * FROM `$tabla`";
if (!mysql_query($test,$kapcsolat))
{
$create = "CREATE TABLE `$tabla` (
`ID` MEDIUMINT NOT NULL AUTO_INCREMENT ,
`kulcs` VARCHAR( 200 ) NOT NULL ,
`time` INT NOT NULL ,
`cim` TEXT NOT NULL ,
`hely` TEXT NOT NULL ,
`kiskep` TEXT NOT NULL ,
`nagykep` TEXT NOT NULL ,
PRIMARY KEY ( `ID` )
);";
mysql_query ($create,$kapcsolat);
}
if (@is_file($nagykep))
{
$nagykep_nev = $nagykep_name;
copy ($nagykep, "users/$usr/kepek/$nagykep_nev");
unlink("$nagykep");
$path = "users/$usr/kepek";
$len = strlen($nagykep_nev);
$pos =strpos($nagykep_nev,".");
$type = substr($nagykep_nev,$pos + 1,$len);
if ($type=="jpeg" OR $type=="jpg" OR $type=="JPEG" OR $type=="JPG")
{
thumb_jpg ($nagykep_nev,$path,150); //Call to jpeg function
}
else if($type=="png" OR $type=="PNG")
{
thumb_png ($nagykep_nev,$path,150); //Call to PNG function
}
else if($type=="gif" OR $type=="GIF")
{
thumb_gif ($nagykep_nev,$path,150);
}
else
{
echo "$nagykep_nev is an unknown file format.
Only .jpg, .gif and .png files are supported.";
}
$id = uniqid("");
$uzenet[0]=time();
$uzenet[1]=$_POST["cim"];
$uzenet[2]=$_POST["hely"];
$uzenet[3]=$nagykep_nev;
$uzenet[4]=$nagykep_nev;
$par = "INSERT INTO $tabla (kulcs,time,cim,hely,kiskep,nagykep) VALUES ('$id','$uzenet[0]','$uzenet[1]','$uzenet[2]','$uzenet[3]','$uzenet[4]')";
mysql_query ($par,$kapcsolat)
or die ("Hiba!:".mysql_error());
utolso ("kep", $_POST["user"],$id,$_POST['cim'],$_POST["hely"]);
echo "<meta http-equiv=\"refresh\" content=\"0;URL=x.php?m=admin\">";
}
else { echo "Nincs nagy kép!";}
}
}
}
?>
Hello!Talán te tudsz nekem s
kipróbáltam azt amit írtál és szépen lehet az adatbázisba berakni a képeket, de valahogy nem tudom kiírni...pedig a kep_tipusát is tároltam, és mikor előhívom a header("Content_type: image/pjpeg"); az echo $kep; nem hoz elő semmit. sőt a firefox kiírja, hogy a köv kép nem nyitható meg, mert hibákat tartalmaz...
Mi hiányzik?
Sziasztok! Én is hasonló
Én is hasonló cípőben járok, csak annyival cifrább, hogy egy tárgyhoz több képet kell feltölteni, a képek elérési útvonalát meg adatbázisban tárolnánk. Akkor van ugye egy tárgy_id meg egy rakás mező a nagyon fantáziadús kep1, kep2...kepn elnevezéssel. Odáig eljutottam, hogy a képeket tömbként tölti fel a kedves user, és ott akadtam el, hogy hogyan veszem rá a php-t, hogy a képek elérési útvonalát a megfelelő mezőkbe töltse.
<?
if($_POST['submit']){
$uploaddir = '/célkönyvtár/';
for($i=0; $i<count($_FILES['userfile']['tmp_name']); $i++){
$tempname = $_FILES['userfile']['tmp_name'][$i];
$filename = $_FILES['userfile']['name'][$i];
if($tempname != ''){
move_uploaded_file($tempname, $uploaddir.$filename);
}
}
}
?>
De innen hogyan tovább???
az $uploaddir.$filename tarta
De hogyan rakom be? Így?
$valami = "INSERT INTO kepek (keplink) VALUES ('$uploaddir.$filename')";
mysql_query ($valami, $kapcsolat)
Egyébként meg az a gondom, hogy a mezőket kep1, kep2 stb-nek hívnák, bár valószínűleg nem fog menni. Azt nem tudom megfogalmazni, hogy a kep1 mezőbe rakd be az első fájl elérési útvonalát, a kep2-be a másodikét stb.
Tudom, hogyan tudok karácsony előtt ilyen marhaságokat írni... :-)))
http://www.phpbuilder.com/col
http://www.phpbuilder.com/columns/florian19991014.php3?page=2
http://www.phpbuilder.com/columns/florian19991014.php3?page=3
szerintem ezt keresed
Boldog Karácsonyt!!! :)
Nem, de nagyon kedves vagy. (
Ez a kód ide vonatkozó része:
$valami = "INSERT INTO pictures (azonosito, kep) VALUES ($_POST['azonosito'],'"$uploaddir.$filename"')";
mysql_query($valami, $myconn);
Ez meg a hibaüzenet, amivel a böngésző rövidíti az életem:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\phpweb\upload3.php on line 23
Szerintem már az összes ilyen témájú fórumot elolvastam, és képtelen vagyok jól csinálni. :-((((
Neked is Boldog Karácsonyt!
Háhá! Csak sikerült ös
Csak sikerült összebarkácsolni! Most feltölti az összes fájlt, berakja az elérési utat, viszont kihagyja belőle a \ jeleket.
$location= $uploaddir.$filename;
Ha kiiratom, akkor nagyon szépen megjelenik, hogy pl. c:\feltoltes\valami.jpg, de az adatbázis mezőben az érték c:feltoltesvalami.jpg. Ez miért van?(A mező típusa varchar)
[colorer=php]$location=mysql_
Maat
Erre varjatok gombot! Kép
Képfeltöltés, linkek tárolása az adatbázisban, "azonosito_ . kepnev" formátumban, mindenki boldog. Aztán szerdán a feltöltő program fogja magát, és az azonosító után nem a filename-t fűzi, hanem a teljes local elérési utat. Vagyis a linkek a boldogító oldal.hu/könyvtár/azonosito_kép.jpg elnevezés helyett az igen bosszantó oldal.hu/könyvtár/azonosito__C:\\mittudomén\filename.jpg formátumra változik. (Amire persze az IE bemutatja a nagy középső ujjat...)Senki nem nyúlt semmihez. De akkor mi történt, és miért???????
Képfeltöltés
Nekem olyan gondom van,hogy képet szertnék feltölteni adatbázisba.Igenám, de nem teszi be a tempbe,sot $_FILES[userfile][temp_name] része teljesen üres.Jelenthet-e gondot hogy a PHP-m 4.1.1-es,az apache szerver 1.3.23.Ugyanis kiprobáltuk php 4.3.1-n, és ott működött.Vagy esetleg a php.ini-ben kellene átirni az upload_tmp_dir-t?
Ha esetleg valaki tudna segitni,aztmegköszönném.
Üdv:Sz
Hali! Lehet, hogy ez
Lehet, hogy ez nálad a gond...$_FILES
Na én is találkoztam ezzel a problémával. Lehet, hogy nincs a php.ini-ben beállított upload konyvtárra jogosultságod, ha linuxos vagy. Esetleg az upload time-ot kell nagyobbra állítanod. Egyébbként a php nagyobb verzióiban van az $_FILES[upload_name][error] változó is, ami ha jól működik a formod, akkor ad hiba kódot.
Nálam sokkal banálisabb volt a hiba oka. Egy olyan lapon csinálta ezt velem a $_FILES, ahol tele volt include file-lal, meg több különálló formmal. Az egyik form végéből hiányzott egy ">"-jel, amitől ugyan működött, csak az utána jövő feltöltő rész volt tiszta üres a $_FILES tömb, pedig a $_POST tömbben ott volt a feltöltőhöz kötődő rész.
Utóirat:
Ezt a honlapot feltétlenül nézzétek meg! Valóságos kód gyűjtemény:
http://www.hotscripts.com/index.html