Images do database

Potřebuju dávat obrázky do database poslane z formuláře imput file, ale nemusi tam byt bindata stači jen odkaz do souboru s uloženými obrázky. Ale když to pošlu tak se do database da odkaz C://atd.. .., což samozřejmě na serveru nefunguje. díky
Neviem presne čo chceš ale dúfam že ti toto pomôže:
Prepíš ten odkaz na adresu napríklad: obrázky/moj.jpg
když odešlu z formuláře input type=file name=foto tak se uloži do proměné $foto do database ale nasměrovaný do adresáře odkud jsem obrázek vzal, což je v mém kompu a ne na serveru.
<HTML>Spravne....
ulozi se do $foto ....
pak pouzij move_uploaded_file() a presun to do adresare nekam na server ...
jmeno souboru si budto ponech nebo uloz pod vlastnim unikatnim nazvem....
do databaze pak toto jmeno ulozis spolu s cestou ktera je vzdy stejna protoze vede k souboru na serveru</HTML>
O to se snažim a nějak se mi to nedaří.
To move_uploaded_file() je funkce?
Ty pravě ještě moc neumim a nevim jak to správně napsat.
Richart moderator tady neni? vypadalo to že ví o čem mluví a že mi poradí?
Zkus neco takoveho:

$ret=is_uploaded_file($_FILES["nazevinputuveforumulari"]["tmp_name"])&&move_uploaded_file($_FILES["nazevinputuveforumulari"]["tmp_name"],"obrazky/novejnazev.jpg");

if(!$ret) chyba...

is_uploaded_file je pro zvyseni bezpecnosti a move_uploaded_file je opravdu funkce :)

A.
čim volam tu promenou $ret ja mam jedem soubor z formulářem
z kterého se odesílají inputy do souboru kde mam upload tabulky insert into values .Ve formuláři mam skryté pole ktere odesíla $id ktere patrí k zaznamu tak jsem ho umistil do toho souboru s uploadem tabulky ale nevim co by melo iniciovat tu proměnou díky R.
<HTML>vychazim z:
>>když odešlu z formuláře input type=file name=foto tak se uloži do proměné $foto

if (isset($foto)) { // jestli byl soubor poslan
$name = uniqid(time());
move_uploaded_file($foto, "obrazky/$name.jpg");
mysql_query("INSERT INTO tabulka SET jmeno='$name'");
}

tohle je zjednodusena ale funkcni verze, jen jsem si vymyslel v sql nazev tabulky a sloupce, nevim jak to mas ty. A ten adresar "obrazky" kam se fotky ukladaji musis vytvorit. jinak neni od veci doplnit to o funkci is_uploaded_file() jak pise Ales</HTML>
Zkus print_r($_FILES), najdeš tam potřebné údaje. A pak ještě příkladu v mauálu u move_uploaded_file a máš to...
Díky ! R
Nakonec jem to vyřešil takto:

if (isset($foto)) { // jestli byl soubor poslan
$name = $foto_name; //převezme původní jméno obrázku
$jmeno="$name.jpg"; //ke jménu se přidá příponu jpg
$cesta="./obrazky";//adresař kam se ukládají obrázky
$zapis="$cesta/$jmeno"; //tady se složí cesta k obrázku
Copy($foto, "./obrazky/$name.jpg"); //zkopírování obrázku do adresáře
echo "<font size=4 color=red>Hotovo obrázek je uložen!</font>";
// uložení cesty k jednotlivým obrázkům do databáze
if ($id==0)
$SQLText="INSERT INTO zbozi (nazev,popis,cena,sekce,foto) VALUES ('$nazev','$popis','$cena','$sekce','$zapis')";
else{
$SQLText="UPDATE zbozi SET ";
$SQLText.="nazev='$nazev',";
$SQLText.="popis='$popis',";
$SQLText.="cena='$cena',";
$SQLText.="sekce='$sekce',";
$SQLText.="foto='$zapis'";
$SQLText.=" WHERE id=$id";
}
}
Teď bych ještě potřeboval vymyslet jak vymazávat obrázek ze adresáře /obrázky/ kam se zkopírují příkazem "copy"abych se memusel připojovat přes FTP a mazat to ručně. Radek
>> Teď bych ještě potřeboval vymyslet jak vymazávat obrázek ze adresáře /obrázky/ kam se zkopírují příkazem "copy"abych se memusel připojovat přes FTP a mazat to ručně. Radek

Jako myslíš to ovládat ze svých stránek? Udělat nějakej formulář, pak pomocí while a readdir() projet adresář a potom:

unlink("./obrazky/nazev_obrazku.jpg");

BTW:
>> $jmeno="$name.jpg"; //ke jménu se přidá příponu jpg

nebude lepší:

$jmeno= $name.".jpg";
Tohle mi neni jasný?" pak pomocí while a readdir() projet adresář " mužeš mi to nějak přiblížit? Radek while znam z tabulek ale nevim jak to použít s formulářem a readdir() to je nějaká funkce ne?
Tk už to mam !

$handle=opendir('obrazky');
while (false!==($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
readdir() - http://cz2.php.net/manual/cs/function.readdir.php

Máš tam i příklady za použití cyklu while, kdy si necháš cyklem vypsat všechny soubory v daném adresáři.

Ani by IMHO nemusel bejt formulář. Soubory by sis nechal na stránce vypsat pod sebe a vedle pak odkaz "Smazat".

Soubor např. "index.php"

<?php

if($_GET["delete"] == "ok"):
$delete_file = $_GET["file"];
unlink("./obrazky/".$delete_file ."");
endif;


$adresar = "./obrazky/";
$opendir = opendir($adresar);
while (false!==($file = readdir($opendir))) {
if ($file != "." && $file != "..") {
echo $file." "<a href=\"index.php?delete=ok&file=rawurlencode($file)\">Smazat</a>";
}
}
closedir($opendir);
?>

Je to jenom takovej nápad a tudíž teorie, takže to ani nemusí fungovat. Možná tam mám chyby, možná by to šlo udělat mnohem jednodušeji.

Petr
Jseš rychlejší, tak sorry
Každopádně díky za nápad jak dlouho se zabýváš PHP já asi rok ale pořád tápu, už se
v tom trochu orientuji ale strašně těžko smolím nějakou vlastní aplikaci, pořád se objevuje něco nového a já nestihám, ale já to dělám jen pro zábavu. To readdir jsem si našel v manualu PHP http://www.cs.vsb.cz/amalka/doc/php/czech-old/index.html
Radek
Já taky něco přes rok. Donedávna jsem taky nevěděl k čemu je readdir() dobrej. Ale právě sesmolit nějakou aplikaci je to nejhezčí, co může bejt, než si stahovat od Blueboardu ankety a knihy, apod.
Ahoj...ja mam regitrasi na wz.cz, ale upload mne proste nejde :(
kod je:

if (is_uploaded_file($_FILES["userfile1"]["tmp_name"]))
{
move_uploaded_file( $_FILES["userfile1"]["tmp_name"],"obrazky/novejnazev.jpg");

A vypise to:
Warning: move_uploaded_file(): Unable to access obrazky/novejnazev.jpg in /3w/wz.cz/z/zehyo/admin/kepfeltolt.php on line 10

radek 10 je move_uploaded_file(..)

Muze mne prosim nekdo pomoct?
Ok, uz jsem na to prisel...neexistovala slozka...
no a když si počkáte na další verzi PHP (4.3) tušim tak tam je i funkce "scandir()" nebo tak nějak podobně. - a ta vám obsah adresáře (teda spíš jména adresářů a souborů) rovnou naháže do pole. Sbohem readdir(). :o)
Manuá praví (nemám zrovna nejnovější verzi...), že scandir je "PHP 5 CVS only
"
Čau, sorry že vá lezu do sikuze, ale příkazy opendir a readdir mi stejnak nefungujou. Zjistil jsem že je to kvůli zapnutýmu safe mode. Nevíte na ně nějakou ekvivalentu, která by fungovala. Přesně je to na galerii, která přečte všechny obrázky z adresáře a potom je zobrazí... Vím že by se to dalo udělat přes databázi, ale takhle to má výhodu v tom, že tam vloží soubory ručně nakopírovaný přes ftp...
opendir a readdir na wz funguje