Autor Zpráva
kureal
Profil
Dobrý den,
chtěl jsem napsat JScript, pomocí kterého bych uploadoval na server velké soubory. Celá věc měla fungovat následovně:
- Uživatel by do pole "file" vybral soubor a klikl na "uploadovat"
- Pomocí objektu ADODB.Stream by se po částech četla část souboru na uživatelově PC (např. po 128kB) a přes AJAX posílala serveru, který by soubor z těchto částí skládal.
- Nakonec by se pole "file" smazalo (tím by se s formulářem soubor již neposílal) a formulář odeslal.

Přineslo by to i zajímavý bonus v podobě zobrazení % uploadovaných dat. Ale mám problém právě s ADODB.Stream. IE vypíše error "Automatizační server nemůže vytvořit objekt" na řádku:
var AdoStream  = new ActiveXObject("ADODB.Stream");

Pokud použiju 2. způsob, tj:
var AdoStream  = WScript.CreateObject("ADODB.Stream");
,
pak to vypíše "WScript není definován".

Zkoušel jsem to i s "FileSystemObject"em, který fungoval bezvadně, ale umí pracovat pouze s textovými soubory. S JScriptem víceméně začínám a předem děkuji za každou radu.
Chamurappi
Profil
Reaguji na kureala:
Vzdej to. Všechny standardní ActiveX prvky, které přistupují na disk, nemají z bezpečnostních důvodů dovolené skriptování v prohlížeči.

Můžou běžet leda tak ve Windows Scripting Host (pak je na místě ten WScript.CreateObject), to bys ovšem musel uživatele přesvědčit, aby si ten JS soubor stáhnul a sám manuálně spustil, čímž by ti dal víceméně stejná oprávnění, jako měl kdysi slavný virus ILOVEYOU (což byl VBScript pro WSH putující e-mailem). Mohl bys pak od něj nejen cokoliv uploadovat, ale také u něj třeba mazat.
kureal
Profil
Děkuji za reakci!
Problém se nakonec ukázal jako triviální - jak by mohl "Automatizační server (nemůže) vytvořit objekt", když jsem ho v PC neměl. Stačilo nainstalovat MDAC a server zařadit mezi "Důvěryhodné servery".

PS. Rozhodně se nesnažím napsat nějaký virus, ale jednoduše jsem potřeboval dát možnost uzavřené skupině osob uploadovat velké soubory bez ftp.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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