Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
?Input mezőből visszakapott adat probléma
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
*Link eredményének kiolvasása
Imagemapre képet
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Képfeltöltés adatbázisosan probléma

»

Képfeltöltés adatbázisosan probléma

nyitotta: geodor, idő: 2010.03.14., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Adatbázisok » MySQL
Programozási nyelvek » PHP

Sorrend:
Időzóna:
Blokkméret:
Sziasztok!

Tudna valaki segíteni abban, hogy van egy képem amihez időt rendelek hozzá. Az adatbázisba és a tárhelyre nem kerül be a kép feltöltés után, csak a hozzárendelt idő. Miért nem töltődik fel a kép?

A kódrészlet:

$bido=time();
$filedir = "kep";
if (is_uploaded_file($_FILES['eztkell']['tmp_name'])) {
$filnev = $HTTP_POST_FILES['eztkell']['name'];
$filnev = substr($filnev,-3,3) ;
$kepnev="receptkep".$bido.".".$filnev;
move_uploaded_file($_POST_FILES['eztkell']['tmp_name'],$filedir . '/'.basename($kepnev));
}
$sql="INSERT INTO adatok values ('','$almenu','" . mysql_escape_string($cim) . "','" . mysql_escape_string($recept) . "','" . mysql_escape_string($nev) . "','$bido','$kepnev')";
$eredmeny = mysql_query($sql) or die(mysql_error());

}
...
Érdekes, hogyha a tárhelyre feltöltök egy képet a megfelelő formátumban és az adatbázisba a kep mezőbe beillesztem a nevét+ az ido mezobe az időt, akkor megjelenik az oldalon.
$filnev = $HTTP_POST_FILES['eztkell']['name'];
helyett
$filnev = $_FILES['eztkell']['name'];

Mindenhol
Kijavítottam, de még mindig nem tölti fel a képet.
basename( $kepnev )

itt ne egy prefixxel ellátott fájlból képezz fájlnevet,
hanem a $filnev -ből.

Írási jogod a mappára?

move_uploaded_file()  -nak a sikerességét ellenőrizhetnéd.
Legalább OR die("Nem sikerült átmozgatni");
Ezt írja ki a
print_r($_POST); -ot ha beszúrom:

Array ( [fo] => rf [almenu] => 8 [nev] => aa ss [eztkell] => C:\\logo1.gif [cim] => aa [recept] => aa )

A mappa attributuma G755
A beírásnál a formtól a változóidat $_POST -on keresztül kéne elérned, mert már (szerencsére) egyre kevésbé támogatott a register globals direktíva...
Az űrlapod:
<form ... method="post" enctype="multipart/form-data">
<input name="eztkell" type="file" />..

formájú?


Akkor:
$bido=time();
$filedir = "kep";
if (is_uploaded_file($_FILES['eztkell']['tmp_name']))
    {
    $filnev = $_FILES['eztkell']['name'];
    $filnev = substr($filnev,-3,3) ;
    $kepnev="receptkep".$bido.".".$filnev;
    move_uploaded_file($_FILES['eztkell']['tmp_name'],$filedir . '/'.$kepnev);
    }
  else
    {
    $kepnev="";
    }
$sql="INSERT INTO adatok values ('','$almenu','" . mysql_escape_string($cim) . "','" . mysql_escape_string($recept) . "','" . mysql_escape_string($nev) . "','$bido','$kepnev')";
$eredmeny = mysql_query($sql) or die(mysql_error());
Kipróbáltam úgy, de nem tölti fel.
Ez a forráskód:
...

<? if ($fo=="recept2") { ?>
<form action="admin.php" method="post">
<input type="hidden" name="fo" value="rf">
Válaszd ki az almenut <select name="almenu">
<? include("dbconn.php");
$almenu=$_GET[almenu];
$parancs = "SELECT * FROM receptalmenu WHERE azon=$menu";
$eredmeny = mysql_query($parancs) or die(mysql_error());
while ($sor = mysql_fetch_array($eredmeny)) {
$id1=$sor['id'];
$almenu=$sor['menu'];
?> <option value="<? print $id1 ?>"><? print $almenu ?></option><?
}
?>
</select>
<tr><td>beküldő neve:<input type="text" name="nev"></td></tr>
<tr><td>Kép feltöltése:<input type="file" name="eztkell" size="30" maxlength="255"></td></tr>
<tr><td>a recept neve:<input type="text" name="cim"></td></tr>
<tr><td><textarea cols="70" rows="10" name="recept"></textarea></td></tr>
<tr><td><input type="submit" value="Felvitel">
<tr><td><a href="admin.php">vissza a főmenübe</a>
</form>
<? } ?>

<? if ($fo=="rf") {
include("dbconn.php");
$almenu=$_POST[almenu];
$cim=$_POST[cim];
$recept=$_POST[recept];
$nev=$_POST[nev];
$kepnev=$_POST[kepnev];
$filedir=$_POST[filedir];
$filnev=$_POST[filnev];
$a="jo";
$cim=trim($cim);
if ($cim=="" or $cim==" ") {$a="Nem adtál meg receptcímet";}
if ($recept=="" or $recept==" ") {$a="Nem adtál meg receptleírast";}
if ($a=="jo") {
$bido=time();
$filedir = "receptkep";
if (is_uploaded_file($_FILES['eztkell']['tmp_name']))
    {
    $filnev = $_FILES['eztkell']['name'];
    $filnev = substr($filnev,-3,3) ;
    $kepnev="receptkep".$bido.".".$filnev;
    move_uploaded_file($_FILES['eztkell']['tmp_name'],$filedir . '/'.$kepnev);
    }
  else
    {
    $kepnev="";
    }
$sql="INSERT INTO receptrecept values ('','$almenu','" . mysql_escape_string($cim) . "','" . mysql_escape_string($recept) . "','" . mysql_escape_string($nev) . "','$bido','$kepnev')";
$eredmeny = mysql_query($sql) or die(mysql_error());
 
} else {
 print $a;
 }
 }
 ?> <a href="admin.php">További felvitel</a>

...
Nem próbáltad ki.

<form ... method="post" enctype="multipart/form-data">

de pl. $fo helyett inkább $_POST['fo'] és minden űrlapról érkezőt hasonlóan.

--
while ($sor = mysql_fetch_array($eredmeny)) {
$id1=$sor['id'];
$almenu=$sor['menu'];
?> <option value="<? print $id1 ?>"><? print $almenu ?></option><?
}


Helyett
while ($sor = mysql_fetch_array($eredmeny)) {
?> <option value="<? print $sor['id'] ?>"><? print $sor['menu'] ?></option><?
}
gyorsabb, memória takarékosabb.
Most már feltölti a képet is az adatbázisba, csak a tárhelyre a receptkep könyvtárba nem teszi be. Valószínűleg azért, mert a tmp könyvtár az egy könyvtárral visszább van.
(a gyökérkönyvtárban van a 'tmp' , az admin.php a recept könyvtárban, a kép amit felkellene töltenie, az pedig a recept/receptkep mappában)

Tudnál segíteni benne, hogyan adjam meg helyesen...



...

$bido=time();
$filedir = "receptkep";
if (is_uploaded_file($_FILES['eztkell']['tmp_name']))
    {
    $filnev = $_FILES['eztkell']['name'];
    $filnev = substr($filnev,-3,3) ;
    $kepnev="receptkep".$bido.".".$filnev;
    move_uploaded_file($_FILES['eztkell']['tmp_name'],$filedir . '/'.$kepnev);
    }
  else
    {
    $kepnev="";
    }
$sql="INSERT INTO receptrecept values ('','$almenu','" . mysql_escape_string($cim) . "','" . mysql_escape_string($recept) . "','" . mysql_escape_string($nev) . "','$bido','$kepnev')";
$eredmeny = mysql_query($sql) or die(mysql_error());

...
Ahol van a feltöltő php fájl, ahhoz képest kell megadnod az útvonalat.

pl:
move_uploaded_file($_FILES['eztkell']['tmp_name'],"../". $filedir . '/'.$kepnev);
bár szerintem neked jó az útvonal.

Megfelelő jogok vannak beállítva a receptkep mappára.

(A tmp mappa mindegy.)
Köszi szépen, most már működik.
A pont Neked jár!!!!
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Riha60
»Akhiles50
»mrchandra50
»Bakter50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen