Autor Zpráva
Tomast
Profil
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
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");'>
Možno by bolo ešte vhodné si objekt okna uložiť do nejakej premennej, aby bol k nemu možný prístup aj z hlavného okna.

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
Díky moc za radu, zatím tento nápad funguje, jen ho doladit.
Tomast
Profil
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
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
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
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
_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
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
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
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
_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
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);
}
Treba vyskúšať, v ktorých prehliadačoch to bude fungovať.
Tomast
Profil
jo, to jsem přesně potřeboval, díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0