Autor Zpráva
AnAlienHolakres3
Profil
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
AnAlienHolakres3

Dělá ti to tu chybu ve všech prohlížečích??
AnAlienHolakres3
Profil
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
BetaCam:Měl jsi na mysli nějaký řešení?
Kajman_
Profil *
A nemáte špatně vypočítanou velikost?
AnAlienHolakres3
Profil
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
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 *
A
$file->taskfile_size

je to samé jako
strlen($file->taskfile_content)

?
AnAlienHolakres3
Profil
„[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
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

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: