 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
joe_black
Data înscrierii: 03/Mai/2006
Mesaje: 30
|
| Trimis: Lun Ian 21, 2008 7:10 pm Titlul subiectului: Canceling file upload |
|
|
Am un script care face upload la fisiere de max 50M.
Mi-am instalat pecl/apc ca sa vad un progress bar .
am setat post-limit la 51M si upload file la 50M. si
<input type="hidden" name="MAX_FILE_SIZE" value="52428800" > in form
Toate bune si frumoase insa, cand un fisier imi depaseste 50M nu se opreste si nu intoarce eroare in script ci incarca 50M, scrie eroare in error_log dar scriptu in browser nu se opreste, trimite date pana cand max_execution_time il opreste!
Cum opresc uploadul fisierului ? pot sa ii determin marimea dinainte cu ajutorul pecl/APC! |
|
| Sus |
|
matzipan
Data înscrierii: 22/Ian/2008
Mesaje: 11
|
| Trimis: Mar Ian 22, 2008 11:02 pm Titlul subiectului: |
|
|
| Folosesti $_FILES["file"]["size"] ? |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 2764
Locație: Targoviste City
|
| Trimis: Mar Ian 22, 2008 11:26 pm Titlul subiectului: |
|
|
| nu, $_FILES iti da valoarea cand fisierul e deja pe server... altceva, eu nu prea stiu. Ai putea ceva cu javascript dar, daca e disabled e cam nasol, aceeasi situatie http://www.google.ro/search?q=javascript+file+size |
|
| Sus |
|
Pirahna
Data înscrierii: 22/Aug/2004
Mesaje: 4258
Locație: acasa , in pat
|
| Trimis: Mar Ian 22, 2008 11:50 pm Titlul subiectului: |
|
|
Hello joe_black, nu te-am mai vazut de mult pe aici.
Un upload sau download stiu ca se termina cand browserul vede un end-of-file ... in cazul tau ar trebui sa folosesti ajax si o data la 30 de secunde sa verifice dimensiunea fisierului temporar (pentru ca din cate stiu un upload scrie direct acolo ce urca) ...
Daca depaseste valoarea ta, dai un redirect la pagina ta pe una cu eroare (sau pe aceeasi pagina, vezi tu).
In rest mai am niste idei dar sunt complicate si mai putin functionale.
Oricum, pot sa spun ca Google de exemplu nu a remediat problema asta ... ei inca permit uploadul de 100-200 de mega si apoi iti spun ca ai gresit, ca limita e 50. |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 2764
Locație: Targoviste City
|
| Trimis: Mar Ian 22, 2008 11:56 pm Titlul subiectului: |
|
|
mi se pare ca asemenea face si yahoo si, mi se pare cea mai sigura varianta...
verifici dimensiunea si, daca e prea mare faci unlink |
|
| Sus |
|
Pirahna
Data înscrierii: 22/Aug/2004
Mesaje: 4258
Locație: acasa , in pat
|
| Trimis: Mie Ian 23, 2008 12:10 am Titlul subiectului: |
|
|
octavian a scris: mi se pare ca asemenea face si yahoo si, mi se pare cea mai sigura varianta...
verifici dimensiunea si, daca e prea mare faci unlink
Si cel mai important, afisezi eroarea :P |
|
| Sus |
|
joe_black
Data înscrierii: 03/Mai/2006
Mesaje: 30
|
| Trimis: Joi Ian 24, 2008 5:23 pm Titlul subiectului: |
|
|
Citat: Un upload sau download stiu ca se termina cand browserul vede un end-of-file ... in cazul tau ar trebui sa folosesti ajax si o data la 30 de secunde sa verifice dimensiunea fisierului temporar (pentru ca din cate stiu un upload scrie direct acolo ce urca) ...
Cum determini care este numele fisierului temporar, avand in vedere ca el apare in $_FILES doar dupa ce a fost uploadat cu success pe server, iar daca are marimea mai mare Apache nu mai scrie fisierul temporar?
Tocmai am aflat asta prin experimente :)
Noroc cu pecl/ACP de care v-am zis inainte, care iti afiseaza dinamic marimea fisierului de uploadata , pathu catre fisieru_temporar , cat s-a uploadat etc. iar. F. IMPORTANT INTOARCE FALSE DACA APACHE-U REFUZA UPLOADU FISERULUI.
Browserul trimite chiar daca serveru i-a refuzat fisieru adica, daca marimea fisierului depaseste limitele impuse sau oricare alta conditie nu este indeplinita serveru nu mai primeste date .. dar nu intrerupe conexiunea.
Asa ca trebuia sa o intrerup eu. Oricum foloseam Ajax ca sa afisez progresul uplodului si a mai ramas sa scriu eroarea in sesiune si sa fac redirect.
Sper ca am clarificat si pe altii. |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|