DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 10. 11. 2010.   #1
vladapopster
novi član
Na probnom radu
 
Datum učlanjenja: 06.11.2010
Poruke: 12
Hvala: 1
1 "Hvala" u 1 poruci
vladapopster is on a distinguished road
Default APC Upload Problem

Imam problem vezan za progres bar pri ajax uploadu fajlova.
Na test serveru sve radi kako treba, dok isti kod prebacen na live server ne radi, tacnije vraca false.

HTML
Kôd:
<form target="hiddenframe" enctype="multipart/form-data" name="form1" id="uploadform" style="margin-left:6px;" action="" method="POST">
				<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="{$upl_id}" />
				<input type="file" id="numlist" size="25" name="filefieldname" {literal}onchange="fandl_simple_sms(this.id,Array('numbers','choiceG','numlist'));"{/literal}/>
			    </form>
			    <input type="hidden" id="filename" value=""/>
			    <iframe name="hiddenframe" style="display:none" >Loading...</iframe>
Javascript
Kôd:
var params = { upl_id: upl_id	};
		new Ajax.Request(
			'/cust/klase/upload_progress.php',
			{
				'parameters': 	params,
				onSuccess: function(transport)
				{
					var resp = transport.responseText; 
					var odgovor;
					eval('odgovor = ' + resp);
					
					if(odgovor.status == "OK")
					{   
						$('uploadedfile').update("Uploaded "+odgovor.trenutno+"kb from "+odgovor.total+"kb");
						
						if(odgovor.procenat!=100)
							setTimeout("waitUpload('"+upl_id+"')",300);
					}
					else if (odgovor.status == 'LARGE')
					{
						$('uploadedfile').update(odgovor.message);
						return;
					}
				}
			}
		);
PHP skripta koja obradjuje velicinu obradjenog dela fajla
Kôd:
if(isset($_REQUEST['upl_id']))
{
    $status = apc_fetch('upload_'.$_REQUEST['upl_id']);
    if($status['total']>10000000)
    {
        echo json_encode(Array('status' => 'LARGE','message' => 'File is larger then 10 MB'));
        return;
    }
    $procenat=round($status['current']/$status['total']*100); 

    echo json_encode(Array('status' => 'OK','procenat' => $procenat, 'total'   => round($status['total']/1000), 'trenutno' => round($status['current']/1000)));
}
E sad problem je sto to sve na development serveru radi kako treba, dok na live serveru apc_fetch vraca false ili nista.
Da li je neko imao ranije neko iskustvo sa APC kesiranjem i progres barom za upload fajlova.

Hvala unapred.
__________________
Webmarket
vladapopster je offline   Odgovorite uz citat
Staro 10. 11. 2010.   #2
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Koja verzija APC-a je na serveru, u 3.1.5 je ispravljen bug koji je bio zasluzan za dupliranje kljuceva u APC-u, tako da cache ne radi kako treba...
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
Staro 10. 11. 2010.   #3
vladapopster
novi član
Na probnom radu
 
Datum učlanjenja: 06.11.2010
Poruke: 12
Hvala: 1
1 "Hvala" u 1 poruci
vladapopster is on a distinguished road
Default Apc

PHP Version 5.3.1

APC Version 3.1.5-dev

Sa podesavanjima:
Kôd:
Directive	Local Value	Master Value
apc.cache_by_default	On	On
apc.canonicalize	On	On
apc.coredump_unmap	Off	Off
apc.enable_cli	Off	Off
apc.enabled	On	On
apc.file_md5	Off	Off
apc.file_update_protection	2	2
apc.filters	no value	no value
apc.gc_ttl	3600	3600
apc.include_once_override	Off	Off
apc.lazy_classes	Off	Off
apc.lazy_functions	Off	Off
apc.max_file_size	1M	1M
apc.mmap_file_mask	no value	no value
apc.num_files_hint	1000	1000
apc.preload_path	no value	no value
apc.report_autofilter	Off	Off
apc.rfc1867	On	On
apc.rfc1867_freq	0	0
apc.rfc1867_name	APC_UPLOAD_PROGRESS	APC_UPLOAD_PROGRESS
apc.rfc1867_prefix	upload_	upload_
apc.rfc1867_ttl	3600	3600
apc.shm_segments	1	1
apc.shm_size	30M	30M
apc.slam_defense	Off	Off
apc.stat	On	On
apc.stat_ctime	Off	Off
apc.ttl	7200	7200
apc.use_request_time	On	On
apc.user_entries_hint	4096	4096
apc.user_ttl	7200	7200
apc.write_lock	On	On
__________________
Webmarket
vladapopster je offline   Odgovorite uz citat
Staro 10. 11. 2010.   #4
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

hm... pogresan kljuc pokusavash da izvadish...

ovo ti ne valja...
Kôd:
    $status = apc_fetch('upload_'.$_REQUEST['upl_id']);

treba da bude
Kôd:
$status = apc_fetch('upload_'.$_REQUEST['APC_UPLOAD_PROGRESS']);
Pozz
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
"Hvala" LiquidBrain za poruku:
Staro 10. 11. 2010.   #5
vladapopster
novi član
Na probnom radu
 
Datum učlanjenja: 06.11.2010
Poruke: 12
Hvala: 1
1 "Hvala" u 1 poruci
vladapopster is on a distinguished road
Default Apc

Probao sam i sa APC_UPLOAD_PROGRESS, ali javlja sada i na devu gde je radilo:
PHP Notice: Undefined index: APC_UPLOAD_PROGRESS in upload_progress.php on line 10
i apc_fetch: false

A u:
Kôd:
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="{$upl_id}" />
Vrednost koja se smesta u apc_store APC_UPLOAD_PROGRESS je value="{$upl_id}

Tako da je
Kôd:
$status = apc_fetch('upload_'.$_REQUEST['upl_id']);
mislim ok, posto vec radi.

Nego posle nekog istrazivanja i testiranja, moguce da je problem u verziji apc-a, koja je 3.1.5-dev, koja cini mi se nije jos stable, pa baguje, a na dev serveru je 3.0.19 i sve radi kako treba.
__________________
Webmarket
vladapopster je offline   Odgovorite uz citat
Staro 10. 11. 2010.   #6
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Hm... da, sorry, moja greshka...

3.0.19 je poslednji stable, sve ove bete imaju neki problem... Iako je mozda neki novi bug u ovim novim verzijama, meni 3.1.5 radi...

probaj da nakon file uploada ili josh bolje za vreme istog, istampash sve cache entrije sa apc_cache_info().

mozda tako vidish sta i dal uopste setuje nesto...

Pozz
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
Staro 11. 11. 2010.   #7
vladapopster
novi član
Na probnom radu
 
Datum učlanjenja: 06.11.2010
Poruke: 12
Hvala: 1
1 "Hvala" u 1 poruci
vladapopster is on a distinguished road
Default Apc

Da, videcu sa administratorima da instaliraju 3.0.19, koji je stable i koji radi na drugom serveru.
Plus, ova verzija filuje php error log sa gomilom gresaka tipa "PHP Warning: include() [function.include]: Unable to allocate memory for pool. in /index_dispatcher.php on line 5
".

Takodje ima jos jedan problem, svaki HTTP request je hendlovan od php procesa (istog ili razlicitog, zavisi od konfiguracije), ukoliko jedan proces hendluje sam upload i u njemu se izvrsava move_uploaded_file, a ajaxom gadjate drugu skriptu u kojoj fetchujete apc (apc_fetch), ako je taj drugi http request hendlovan od strane drugog PHP procesa (sto se moze proveriti sa getmypid() ), apc nece moci da ih fetchuje jer nema mogucnost da se sheruje kroz razlicite procese, tako da cete dobiti false, iako je apc_cache_info() vratio:

Kôd:
num_slots | 1031
[11-Nov-2010 09:12:23] ttl | 7200
[11-Nov-2010 09:12:23] num_hits | 72772
[11-Nov-2010 09:12:23] num_misses | 2084
[11-Nov-2010 09:12:23] num_inserts | 3086
[11-Nov-2010 09:12:23] expunges | 1184
[11-Nov-2010 09:12:23] start_time | 1289407704
[11-Nov-2010 09:12:23] mem_size | 31048032
[11-Nov-2010 09:12:23] num_entries | 244
[11-Nov-2010 09:12:23] file_upload_progress | 1
[11-Nov-2010 09:12:23] memory_type | mmap
[11-Nov-2010 09:12:23] locking_type | pthread mutex
[11-Nov-2010 09:12:23] cache_list | Array
[11-Nov-2010 09:12:23] deleted_list | Array
__________________
Webmarket

Poslednja izmena od vladapopster : 11. 11. 2010. u 11:29.
vladapopster je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Upload XLS fajla Aleksandar.Ilic PHP 2 05. 05. 2010. 11:58
Asinhroni upload Ilija Studen (X)HTML, JavaScript, DHTML, XML, CSS 23 07. 12. 2007. 05:08
PHP upload fajla problem vendi Sva početnička pitanja 15 21. 10. 2007. 22:34
File Upload Problem! flash_back PHP 8 25. 03. 2007. 22:49
upload problem Blood PHP 3 19. 05. 2006. 14:05


Vreme je GMT +2. Trenutno vreme je 14:55.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.