ugrás a tartalomhoz

php+mysql+kepfeltoltes

Anonymous · 2004. Dec. 12. (V), 13.49
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
 
1

egy teljes file

Cadeyrn · 2004. Dec. 12. (V), 15.28
Üdv!

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&amp;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.
3

Szia Cadeyrn. le tudnad ne

Anonymous · 2004. Dec. 12. (V), 16.00
Szia Cadeyrn.

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
2

RTFM

Török Gábor · 2004. Dec. 12. (V), 15.33
Szia,

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/
4

ha jo ertem, hogy db-be akarod rakni a kepet

Anonymous · 2004. Dec. 12. (V), 16.46
akkor peldaul:
CREATE TABLE kepek (
 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);
?>
5

Szia ! Azt szeretnem elern

Anonymous · 2004. Dec. 12. (V), 16.52
Szia !

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
6

időhiány per pill

Cadeyrn · 2004. Dec. 13. (H), 16.17
Üdv!

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&amp;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!";}
}
}
}
?>
16

Hello!Talán te tudsz nekem s

Anonymous · 2005. Már. 3. (Cs), 23.30
Hello!Talán te tudsz nekem segíteni ebben a témában.

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?
7

Sziasztok! Én is hasonló

rainwalker · 2004. Dec. 23. (Cs), 05.24
Sziasztok!

É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???
8

az $uploaddir.$filename tarta

Anonymous · 2004. Dec. 23. (Cs), 15.35
az $uploaddir.$filename tartalmat teszed be a nev adatbazis mezobe a move_upload utan. vagy nem ertem a problemad...
9

De hogyan rakom be? Így?

rainwalker · 2004. Dec. 23. (Cs), 16.46
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... :-)))
10

http://www.phpbuilder.com/col

Anonymous · 2004. Dec. 23. (Cs), 16.54
http://www.phpbuilder.com/columns/florian19991014.php3?page=1
http://www.phpbuilder.com/columns/florian19991014.php3?page=2
http://www.phpbuilder.com/columns/florian19991014.php3?page=3

szerintem ezt keresed

Boldog Karácsonyt!!! :)
11

Nem, de nagyon kedves vagy. (

rainwalker · 2004. Dec. 23. (Cs), 23.42
Nem, de nagyon kedves vagy. (Tudom, a nőknek soha semmi nem elég jó...) Nem magukat a képeket szeretném az adatbázisban tárolni, csak a rájuk mutató linket. Most ott tartok, hogy minden tárgynak van egy saját azonosítója (azonosito) és tartozik hozzá egy rakás kép, amelyeknek az azonosito értékük azonos, csak az id értékük egyedi.

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!
12

Háhá! Csak sikerült ös

rainwalker · 2004. Dec. 24. (P), 01.10
Háhá!

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)
13

[colorer=php]$location=mysql_

Őry Máté · 2004. Dec. 25. (Szo), 13.26
$location=mysql_escape_string($location);
- rakjál az idézett parancs után! A mysql-ben a \ speciális karakter, és ezt küszöböli ki a fönti fgv.
Maat
14

Erre varjatok gombot! Kép

rainwalker · 2005. Feb. 20. (V), 09.00
Erre varjatok gombot!

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???????
15

Képfeltöltés

Anonymous · 2005. Feb. 23. (Sze), 16.51
Sziasztok!

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
17

Hali! Lehet, hogy ez

Anonymous · 2005. Már. 14. (H), 09.25
Hali!
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