Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 26. 12. 2010, 03:45:27
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 |
#2 · Zasláno: 26. 12. 2010, 05:13:42
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 |
#3 · Zasláno: 26. 12. 2010, 11:33:39 · Upravil/a: fuckin
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 |
#4 · Zasláno: 26. 12. 2010, 11:50:33
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 |
#5 · Zasláno: 26. 12. 2010, 14:32:12
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 |
#6 · Zasláno: 26. 12. 2010, 14:46:38
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 |
#7 · Zasláno: 26. 12. 2010, 15:03:39
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 |
#8 · Zasláno: 26. 12. 2010, 15:35:53
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 |
#9 · Zasláno: 26. 12. 2010, 16:28:22
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 |
#10 · Zasláno: 26. 12. 2010, 16:57:51
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 |
#11 · Zasláno: 26. 12. 2010, 18:26:41
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 |
#12 · Zasláno: 26. 12. 2010, 20:25:58
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 |
#13 · Zasláno: 27. 12. 2010, 19:46:00
Davex:
Zajímavé, už aby byla plná podpora HTML5, nemůžu se dočkat. Díky za info. |
||
Časová prodleva: 13 let
|
0