Autor | Zpráva | ||
---|---|---|---|
strafnik Profil |
#1 · Zasláno: 5. 12. 2008, 14:29:50 · Upravil/a: strafnik
Ahoj, formulářový prvek
<input type="file" name="jmeno_souboru" size="18"> $jmeno_souboru=$_POST["jmeno_souboru"]; Jak mohu jinak dosáhnout téhož aniž bych musel ručně naťukat cestu do pole <input type="text" name="jmeno_souboru" size="35"> Děkuji |
||
Jack Finger Profil |
#2 · Zasláno: 5. 12. 2008, 14:40:16
K nahranému souboru se přistupuje přes asociativní pole $_FILES, takže $_FILES['tmp_name'], $_FILES['name'], $_FILES['size'], $_FILES['type'].
|
||
strafnik Profil |
#3 · Zasláno: 5. 12. 2008, 14:52:32
Ale já nechci přesouvat ten vybraný soubor pomocí formulářového prvku. Chci získat jen cestu. Zhruba před měsícem po nějakém update (windows) mi to přestalo fungovat a vrací jen jméno souboru bez cesty. Pokud jsem nepochopil co míníš, prosím uveď souvislejší kód abych tomu lépe porozuměl. Díky.
|
||
blaaablaaa Profil * |
#4 · Zasláno: 5. 12. 2008, 14:54:06
strafnik: odesilani cele cesty by bylo celkem poruseni soukromi, proto prohlizece odesilaji jen jmeno...
|
||
strafnik Profil |
#5 · Zasláno: 5. 12. 2008, 14:56:40
Dobře, soukromí beru, ale jak z toho ven? Podotýkám, že jde o lokální síť (domácí)
|
||
Mastodont Profil |
#6 · Zasláno: 5. 12. 2008, 15:02:00
Jestli je v tom prvku před odesláním opravdu celá cesta, tak přes JS zkopírovat do nějakého hidden inputu a pak odeslat?
|
||
strafnik Profil |
#7 · Zasláno: 5. 12. 2008, 15:06:33
Zkoušel jsem testovat tento kód, ale nevede to nikam, možná je chybný?
<script type="text/javascript"> function x(cesta){ document.f.cesta.value=cesta; return true; } </script> <h3>Zadání souboru</h3> <form name=f method="get" onSubmit="return x(soubor.value);"> <p><input type="file" name="soubor"></p> <p> <input type="text" name="cesta"></p> <input type=submit value=odeslat> </form> |
||
bohyn Profil |
#8 · Zasláno: 5. 12. 2008, 15:47:08
Jestli je tam ulozena cesta nevim, ale zkus tohle:
function getPath(obj) { obj.cesta.value = obj.soubor.value return true; } <form method="post" enctype="multipart/form-data" onsubmit="return getPath(this);"> <input type="file" name="soubor"> <input type="hidden" name="cesta"> <input type=submit value=odeslat> </form> |
||
Jack Finger Profil |
#9 · Zasláno: 5. 12. 2008, 18:06:13 · Upravil/a: Jack Finger
strafnik, bohyn
Formulářový prvek <input type="file"> nepovoluje ani číst cestu, ani psát cestu (atribut value="") (ani měnit popisek tlačítka Procházet). //Edit: teda aspoň mám ten pocit, přece by se jednalo o porušení soukromí, ne? |
||
bohyn Profil |
#10 · Zasláno: 5. 12. 2008, 19:52:26
Jack Finger
Treba FF ti dovoli precist cely soubor nebo zjistit velikost :) Souhlasim ze value se menit neda, ale v IE kdyz das hodnotu inputu do <img scr="..."> tak se obrazek zobrazi (pokud je v inputu obrazek) takze k ceste te asi pusti. Prohlizece proste predpokladaji ze co vlozis do inputu tak chces uploadovat. |
||
strafnik Profil |
#11 · Zasláno: 5. 12. 2008, 20:17:50
Pánové, díky za vstřícnost, zdá se že to prostě nemá řešení :( bohužel to prostě vrací jen jméno souboru bez cesty, takže odkazy na hudební soubory v síťovém úložišti prostě nedostanu do databáze pro následné zobrazení ve výpisu z databáze jako spustitelný odkaz hudebního souboru do přehrávače.... ach jo.
|
||
strafnik Profil |
#12 · Zasláno: 5. 12. 2008, 20:21:03
Není nějaká možnost jak metodami php simulovat výběrové tlačítko přesněji řečeno dialogový panel v kterém si tu cestu naklikám a uložím do proměnné? Nalezl jsem na netu php kódy pro procházení adresářů, ale je to vždy založeno na tom, že skript je umístěn v rootu webu. Já potřebuji aby uměl "zabrousit i na síťové úložiště DLINK DNS-323
|
||
imploder Profil |
#13 · Zasláno: 5. 12. 2008, 20:29:19
strafnik
„Dobře, soukromí beru, ale jak z toho ven? Podotýkám, že jde o lokální síť (domácí)“ 1. nechat si vypsat všechny cesty do textového souboru (něco se na to najde) 2. soubor s cestami uploadovat zmíněným formulářem 3. skript, který ho převezme, ty cesty pak nastrká do databáze |
||
bohyn Profil |
#14 · Zasláno: 5. 12. 2008, 20:30:30
strafnik
Pres FTP, nebo root webu presun na DLINK |
||
strafnik Profil |
#15 · Zasláno: 5. 12. 2008, 20:34:07
Ano to zní jako návod pro zkušeného programátora....... to bohužel nejsem, nejsem ani nezkušený programátor, jsem naprostý laik :( alespoň ukázka kódů?
|
||
imploder Profil |
#16 · Zasláno: 5. 12. 2008, 20:46:11
To co, jsem napsal já, by snad zvládl i lamácký programátor :)
V linuxu je příkaz tree - tím se dá vytvořit zmíněný soubor s cestami. Skript, co zapisuje cesty do databáze, už máš. Stačí ho jenom upravit, aby je nečetl z formulářového políčka, ale všechny najednou z toho souboru. |
||
strafnik Profil |
#17 · Zasláno: 5. 12. 2008, 20:50:37
nemám linux.....
|
||
imploder Profil |
#18 · Zasláno: 5. 12. 2008, 21:53:23 · Upravil/a: imploder
Pod Windows nevím, Total Commander sice umí vypisovat jakýsi strom, ale zřejmě ho neumí vypsat do txt souboru.
Vyrobil jsem na to prográmek v Baltíkovi. Nejdřív je potřeba (pokud to teda nemáš už nainstalované) stáhnout a naistalovat runtime: http://www.sgp.cz/download/csy/b3_ilr_runtime.exe - asi 1,1 MB, bez problémů. Tady je pak samotný prográmek: http://bprhad.wz.cz/strom.BPR Dáš ten strom.bpr do nejhornějšího adresáře, spustíš, a on do zadaného souboru vypíše na řádky všechny cesty k souborům ve svém adresáři a všech zanořených. Baltík je podobně jako PHP interpretovaný jazyk a je hodně pomalý, tak snad to nepotrvá moc dlouho. |
||
strafnik Profil |
#19 · Zasláno: 6. 12. 2008, 18:37:56
php řešení neexistuje?
|
||
Časová prodleva: 15 let
|
0