Autor | Zpráva | ||
---|---|---|---|
AnAlienHolakres3 Profil |
#1 · Zasláno: 1. 11. 2008, 07:35:32
Pěkný den přeji,
trpím zvláštním problémem, kdy v případě že se stáhne soubor přes download manager, tak je přesně takový, jaký jsem ho nahrál. V případě že se ale stahuje přes webový prohlížeč, tak tam chybí pár bitů a zip je pak poškozený. Cache je před uvedením hlaviček vyčištěná, zjistil jsem že když NENÍ uvedena hlavička content-length, tak to stáhne i přes webový prohlížeč soubor přesně takový, jaký tam byl nahrán, ale na druhou stranu to pak už logicky nikde neukazuje nejen jak je soubor veliký, ale ani kolik zbývá do stažení. Nevíte náhodou někdo v čem by mohl být problém? Dole přikládám stěžejní část kódu. $name = utf8_decode($file->taskfile_name); $name = str_replace(' ','_',$name); $type = "application/octet-stream"; // $type = "application/zip"; $size = $file->taskfile_size; $content = $file->taskfile_content; ob_clean(); //veeery important!! without that some empty lines will be added before output... //header("Content-length: $size "); header("Content-type: $type "); header("Content-Description: VSElink team file"); header("Content-Disposition: attachment; filename=$name"); echo $content; exit; Díky moc |
||
BetaCam Profil |
#2 · Zasláno: 1. 11. 2008, 07:51:41
AnAlienHolakres3
Dělá ti to tu chybu ve všech prohlížečích?? |
||
AnAlienHolakres3 Profil |
#3 · Zasláno: 1. 11. 2008, 08:03:47
„AnAlienHolakres3“
„Dělá ti to tu chybu ve všech prohlížečích??“ Nevím jestli ve všech, ale rozhodně v: - IE 7 - Firefoxu 2.x - Opeře 9.x |
||
AnAlienHolakres3 Profil |
#4 · Zasláno: 1. 11. 2008, 10:15:46
BetaCam:Měl jsi na mysli nějaký řešení?
|
||
Kajman_ Profil * |
#5 · Zasláno: 1. 11. 2008, 14:36:44
A nemáte špatně vypočítanou velikost?
|
||
AnAlienHolakres3 Profil |
#6 · Zasláno: 1. 11. 2008, 15:22:06
„A nemáte špatně vypočítanou velikost?“
Velikost jsem porovnával v DB i na výstupu. Všechno naprosto sedí. Spíše by mne zajímalo slovo "vypočítaná"..ta se nepočítá, prostě se vezme hodnota z DB která odpovídá velikosti daného souboru (jak jsem již naznačil, tak tato velikost odpovídá skutečné velikosti). |
||
Kajman_ Profil * |
A size obsahuje počet znaků? Prohlížeč potřebuje počet bytů. Ve více bytových kódováních to nemusí sedět. Zkuste
$size=strlen($content); |
||
AnAlienHolakres3 Profil |
#8 · Zasláno: 1. 11. 2008, 21:46:16
„A size obsahuje počet znaků? Prohlížeč potřebuje počet bytů. Ve více bytových kódováních to nemusí sedět.“
Ah tak...nikoliv, obsahuje počet bytů: $_FILES['userfile']['size'] |
||
Kajman_ Profil * |
#9 · Zasláno: 1. 11. 2008, 21:55:10
A
$file->taskfile_size je to samé jako strlen($file->taskfile_content) ? |
||
AnAlienHolakres3 Profil |
#10 · Zasláno: 2. 11. 2008, 11:55:06
„„[i]strlen($file->taskfile_content)“
„A“ „$file->taskfile_size“ „je to samé jako“ „strlen($file->taskfile_content)“ „?“[/i]“ Ano, tyto hodnoty jsou naprosto stejné... |
||
AnAlienHolakres3 Profil |
#11 · Zasláno: 3. 11. 2008, 20:21:22
PROBLÉM VYŘEŠEN.
Pomocí Wiresharku a analýzy paketů při stahování jsem zjistil, že se používá GZIP v .htaccess který v tom dělal bordel. Tak jsem ho zrušil a nyní je vše ok...snad to někomu pomůže |
||
Časová prodleva: 15 let
|
0