Re: Poskozovani priloh

From: IT Admin <tis (zavinac)>
Date: Wed, 10 Mar 2010 11:43:52 +0100
Zdar konferáci.
Tak jsem se konečně dostal k tomu, abych se pustil do té úpravy, co mi
tak hezky
poradil Kamil.
Došel jsem k následujícímu  zjištění. V souboru /sources/tickets.php
úprava funguje,
jenže stejný problém je i v administraci, která slouží pracovnímu týmu.
Našel jsem si /admin/manage/ad_tickets.php a provedl stejnou úpravu, ale
tentokrát
bez výsledku. Soubory XLS a DOC se stahují zmršené. Hledal jsem i po
internetu
a výsledkem mé snahy bylo nahrazení původního kódu tímto:

    if (file_exists($file_path)) {

      header('Content-Description: File Transfer');

      header('Content-Type: application/octet-stream');

      header('Content-Disposition: attachment; filename='.basename($a['original_name']));

      header('Content-Transfer-Encoding: binary');

      header('Expires: 0');

      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

      header('Pragma: public');

      header('Content-Length: ' . filesize($file_path));

      flush();

      readfile($file_path);

      exit;

    }

Úspěšný jsem však zase nebyl. Soubory jsou stále poškozené. Nebyl by
ještě nějaký nápad?

Díky předem. Rad
 
Dne 25.2.2010 9:48, Kamil napsal(a):
> Tak sem se na to podíval a ke čtení se používá readfile bez toho aby se do
> hlavičky vložilo, že jde o binární soubor. Potom je výsledek nejistej
> (záleží na nastavení serveru).
>
> Takže co s tím? Jde o soubor /sources/tickets.php
>
> Skoro na konci je
> readfile( $file_path );
>
> Tak před to vložit něco takovýho
> if ( $a['mime'] != 'text/html' )
>         {
>             header("Content-Transfer-Encoding: binary");
>         }
>
> Nebo si můžete stáhnout upravenej soubor tady:
> http://temp.sverak.net/td.zip
>
> Jestli to bude fungovat dobře, tak jim tu úpravu pošlete, ať ji zapracují do
> dalších verzí..
>   
Received on 10. 03. 2010, 11:43 CET

This archive was generated by hypermail 2.2.0 : 10. 03. 2010, 11:43 CET