Autor Zpráva
Darker
Profil
Už delší dobu vytvářím (ne pro sebe) software pro upload server. Jsou tu dvě věci které bych rád stvořil, a na které na internetu není návod ale pouze hotové skripty.
I. Kontrola správné velikosti souboru před odesláním
Aktuální limit velikosti nahraného souboru je 0,1 MB. Když pošlu 10MB, klidně se to však odešlea teprve po přesunu dat se mi to vysměje, že mám smůlu. Mám za to že prohlížeč posílá nějakou hlavičku, jejíž součástí je velikost toho souboru. Lze se jí nějak zmocnit, a zkontrolovat data před přijetím?

II. Procenta nahrátí
Našel jsem asi 10 hotovůch skriptů. Je to hodně složité? Jestli ne, radši bych si to stvořil (s vaší pomocí) vlastníma rukama.
xmark
Profil
Darker:
II. Procenta nahrátí

Mám pocit, že co jsem viděl, tak princip je asi takový, že ještě než spustíš samotné nahrávání, zajistíš vytvoření AJAX skriptíku, který si bude v nějakém intervalu zjišťovat velikost temporary souboru na serveru. Vypadá to, že ten plnící se proužek s tím nahráváním nějak souvisí, ve skutečnosti jde o paralelní děj.
fuckin
Profil
Darker:
Je to hodně složité? Jestli ne, radši bych si to stvořil (s vaší pomocí) vlastníma rukama.
Je, doporucuji upravit uploadify.com. Funguje to na principu PHP + JS + FLASH. U mého upload serveru, kde už proteklo desítky TB dat to funguje :)

Získáš omezení velikosti hned u klienta, a získáš status bar bez blbého ajax volání.

xmark:
Mám pocit, že co jsem viděl, tak princip je asi takový, že ještě než spustíš samotné nahrávání, zajistíš vytvoření AJAX skriptíku, který si bude v nějakém intervalu zjišťovat velikost temporary souboru na serveru. Vypadá to, že ten plnící se proužek s tím nahráváním nějak souvisí, ve skutečnosti jde o paralelní děj.
Nápad dobrý, jak ale zjistíš temp name pro daný soubor? Jestli to chceš takto tak existují knihovny PEAR a SOAP pro které jsou upload status funkce.
xmark
Profil
fuckin:
Nápad dobrý, jak ale zjistíš temp name pro daný soubor?

Komplet skript pro nahrávání si z hlavy nepamatuju, ale když koukám na http://cz.php.net/manual/en/function.move-uploaded-file.php, tak vidím, že ["tmp_name"] je jeden z toho pole parametrů $_FILES["xxx"]
(možná neformuluju nejlíp, teď jsem vstával, na té stránce je to sorzumitelnější)
fuckin
Profil
xmark:
vidím, že ["tmp_name"] je jeden z toho pole parametrů $_FILES["xxx"]
Ano, ale $_FILES je přístupné až po dokončení uploadu. Takže ne, tudy to nelze.
Davex
Profil
xmark:
Ke zjištění množství odeslaných dat je bohužel nutná podpora na serveru, jak píše fuckin. Ještě jsem nepřišel na to, proč tuto informaci neposkytují v JavaScriptu přímo prohlížeče - ty by přece také měly vědět, kolik dat už bylo odesláno.
fuckin
Profil
Davex:
Ještě jsem nepřišel na to, proč tuto informaci neposkytují v JavaScriptu přímo prohlížeče - ty by přece také měly vědět, kolik dat už bylo odesláno.
Upload probíhá přes HTTP, ne přes JS. JS nemá přístup k paketům, tzn v tomto případě nemá přístup k počtu odeslaných dat.
xmark
Profil
fuckin:
$_FILES je přístupné až po dokončení uploadu.

Aha, tak to mi nedocvaklo. Dobrá díky. Já jsem se do toho chtěl taky někdy pustit, takže tudy cesta nepovede.
Darker
Profil
Takže otázka je, jak zjistit jméno aktuálního souboru, a jsme doma. Mrknu na google, ale pokud někdo ví, sem s tím.
Dík :)
Davex
Profil
fuckin:
Upload probíhá přes HTTP, ne přes JS. JS nemá přístup k paketům, tzn v tomto případě nemá přístup k počtu odeslaných dat.
Proč by JavaScriptový engine nemohl mít přístup k čítači odeslaných dat? Domnívám se, že technicky tomu nic nepřekáží, např. k velikosti souboru nebo rozlišení obrazovky přístup má.
fuckin
Profil
Darker:
Takže otázka je, jak zjistit jméno aktuálního souboru, a jsme doma. Mrknu na google, ale pokud někdo ví, sem s tím.
Nelze, už jsem to tu jednou psal. Použij knihovny uvedené výše, jestli to chceš přes AJAXové volání.

Davex:
Proč by JavaScriptový engine nemohl mít přístup k čítači odeslaných dat?
Já v tom tedy vidím více problémů proč tomu tak asi není, ale filosovat tady nemíním. Podstatné je, že nemá.
Davex
Profil
fuckin:
Zatím to funguje jen v některých prohlížečích, ale průběh uploadu lze zobrazit i bez asistence serveru. Doufejme, že se to rychle ujme.
Práce se soubory FileAPI
Ajax upload with XMLHttpRequest level 2 and the File API
fuckin
Profil
Davex:
Zajímavé, už aby byla plná podpora HTML5, nemůžu se dočkat. Díky za info.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0