Autor | Zpráva | ||
---|---|---|---|
Tomast Profil |
#1 · Zasláno: 27. 6. 2010, 20:17:43 · Upravil/a: Tomast
Zdravím, tímto skriptem ukládám text do databáze a soubor libovolného formátu. Zároveň se mi otevře okno upload.php, ve kterém by měly být informační hodnoty o velikosti souboru a množsví dat už uložených na servru. Množství uložených dat se vytahuje @filesize() a popup okno upload.php se každé 3 vteřiny aktualizuje. Má to však háček, tím window.open nepřenesu do upload.php hodnotu o názvu souboru a velikosti souboru.
<form method="post" ENCTYPE="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"]?>" onsubmit='window.open("upload.php", "upload", "scrollbars=no,resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no,width=310,height=150,top=400,left=300");return true;'> Název:<input type='text' autocomplete="off" name='name'> Datum:<input type='text' autocomplete="off" name='date'> Vyber soubor:<input type='file' name='soubor'> <input type="hidden" name="odeslano" value="upload"> <input type='submit' value='Odeslat'> </form> Tento úryvek je očesán o tabulku. Celé se to používá pod Mozillou Firefox. Díky za všechny rady, které pomůžou. |
||
_es Profil |
#2 · Zasláno: 27. 6. 2010, 22:30:46
Tomast:
Nie som si istý, či som tomu úplne porozumel, no možno ti pomôže: Element form má atribút target (popis napríklad tu.).
A ten môže byť aj existujúci názov okna, rámu, či záložky (tab), aj názov okna otvoreného cez window.open .
Takže by malo fungovať: <form target=upload method="post" ENCTYPE="multipart/form-data" action="upload.php" onsubmit='window.open("", "upload", "scrollbars=no,resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no,width=310,height=150,top=400,left=300");'> „Celé se to používá pod Mozillou Firefox.“ Nie je dôvod, prečo by to nemalo fungovať aj v iných prehliadačoch. A aj bez JS, len sa otvorí bežné nové okno, alebo sa aktualizuje to existujúce. |
||
Tomast Profil |
#3 · Zasláno: 28. 6. 2010, 00:07:39
Díky moc za radu, zatím tento nápad funguje, jen ho doladit.
|
||
Tomast Profil |
#4 · Zasláno: 28. 6. 2010, 00:42:49
Tak to nefunguje tak jak jsem si představoval, stránka upload.php se celá vykreslí, až se soubor nahraje, což neplní svůj účel.
Kdybych se vrátil k tomu prvnímu kódu, nenapadá někoho, jak ještě před uploadem dát třeba do adresy velikost a název souboru a pak si to vytáhnout $_GET? Třeba: <form method="post" ENCTYPE="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"]?>" onsubmit='window.open("upload.php?file=soubor.jpg&size=5555555", "upload", "scrollbars=no,resizable=no,width=310,height=150,top=400,left=300");return true;'> |
||
Kcko Profil |
#5 · Zasláno: 28. 6. 2010, 01:07:01
Tomast:
Asi chapu o co Ti jde. Urcite je ale vhodnejsi reseni. Mrkni http://demo.swfupload.org/v220/index.htm Vyhnes se nejakym pofidernim aktualizacim otevreneho okna + php procesu uploadu. |
||
_es Profil |
#6 · Zasláno: 28. 6. 2010, 01:24:09
Tomast:
„Tak to nefunguje tak jak jsem si představoval, stránka upload.php se celá vykreslí, až se soubor nahraje, což neplní svůj účel.“ Tak ten súbor na ten server nahrať chceš alebo nechceš? A ak nie jedným z účelov nahratie súboru na server, tak čo je ten účel? Dá sa spraviť, aby bolo pred úplným nahratím v tom novom okne niečo užitočné a informácia o veľkosti súboru až posledná. „jak ještě před uploadem dát třeba do adresy velikost a název souboru“ Názov súboru aj s cestou je v hodnote value elementu input type=file a tá je cez JS prístupná.
S veľkosťou je trochu problém, v starších prehliadačoch to nie riešiteľné, no v najnovších by mohli fungovať metódy HTML5 na to určené. |
||
_es Profil |
#7 · Zasláno: 28. 6. 2010, 01:35:20
Kcko:
„Urcite je ale vhodnejsi reseni. Mrkni http://demo.swfupload.org/v220/index.htm“ Ak ak bude nefunkčný/vypnutý Flash, tak čo? |
||
Kcko Profil |
#8 · Zasláno: 28. 6. 2010, 03:29:24
_es:
tak si zobrazi hlasku, ke spravnemu fungovani si nainstalujte flash. Pripadne chudsi alternativa bez progress baru a podobnejch serepeticek. Nevim co porad resis. |
||
Tomast Profil |
#9 · Zasláno: 28. 6. 2010, 09:22:43
Kcko:
Jo to přesně potřebuju, s Flashem není vůbec problém, tuto blbinku bude používat max 20lidí, takže jim prostě nařídím, aby si to nainstalovali. _es: Podívám se i na to HTML5, vypadá to zajímavě. A soubor samozřejmě nahrát chci, ale když vyskočí okno upload.php, tak by uživatel musel čekat než se mu to nahraje a neviděl by data, která až odeslal + nějaký obrázek odesílání, viděl by pak už jen, že se to poslalo. |
||
Tomast Profil |
#10 · Zasláno: 28. 6. 2010, 10:52:14
Tak jsem nakonec vybral to HTML5, akorát nevím, jak z tohohle skriptu dostat filename jinak než přes ID, nejlepší by byl výsledek v PHP $filename. Asi to bude prokotina, ale opravdu mě nenapadá, jak to udělat.
<script> function updateFilename(path) { var name = extractFilename(path); document.getElementById('filename').textContent = name; } </script> |
||
_es Profil |
#11 · Zasláno: 28. 6. 2010, 22:03:10
Tomast:
„nevím, jak z tohohle skriptu dostat filename jinak než přes ID“ V tom článku máš popísaný jednoduchý spôsob, ako získaš názov, veľkosť a typ súboru: vlastnosti name, size a type prvku toho poľa. |
||
Tomast Profil |
#12 · Zasláno: 28. 6. 2010, 23:15:26 · Upravil/a: Tomast
_es:
Já už fakt nevím, jak z toho článku dostat name a size. Začátečník sice nejsem, ale z tohohle: var numFiles = files.length; for (var i = 0; i < files.length; i++) { var file = files[ i ]; .. } opravdu nevím, jak to dostat, i ten drag je vpohodě, to bych dal, ale tenhle kód je asi hodně stručně napsanej, pls, poradil by ještě někdo? |
||
_es Profil |
#13 · Zasláno: 29. 6. 2010, 08:13:39 · Upravil/a: _es
Tomast:
„opravdu nevím, jak to dostat“ var numFiles = files.length; for (var i = 0; i < numFiles; i++) { var file = files[ i ]; alert("name: " + file.name + " size: " + file.size + " type: " + file.type); } |
||
Tomast Profil |
#14 · Zasláno: 1. 7. 2010, 11:16:05
jo, to jsem přesně potřeboval, díky
|
||
Časová prodleva: 14 let
|
0