Categories > [old] TbsOoo & TinyDoc >

Tbsooo + apache ldap authentification = sélection d'un filtre

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Eric
Date: 2006-11-21
Time: 16:25

Tbsooo + apache ldap authentification = sélection d'un filtre

bonjour à tous
je génère un doc ooo avec tbsOoo, tout fonctionne correctement jusqu'à ce que je paramètre apache pour une authentification ldap et là, au moment de me charger le document, ooo me propose une liste de filtre dans une fenêtre "Sélection d'un filtre : " avec une liste d'une quarantaine de filtres, aucun ne fonctionne et ça se termine toujours par "erreur générale Erreur d'entrée/sortie générale"
Qlq'un a déjà eu ce pblm ?
Y'a-t'il une solution ?

merci
Eric
By: Olivier Loynet
Date: 2006-11-21
Time: 19:53

Re: Tbsooo + apache ldap authentification = sélection d'un filtre

Bonjour Eric,

L'authentification LDAP doit envoyer une entete HTTP qui perturbe le téléchargement de ton fichier ooo

Peut etre en modifiant les headers avant d'envoyer le fichier vers le navigateur pourrait etre une solution.

voici un peu de code PHP pour envoyer un fichier de n'importe quel type qui fonctionne avec IE et Mozilla


$file_source = 'le chemin complet du fichier';
$file_name = 'le nom du fichier à afficher lors du téléchargement';


if (file_exists($file_source) && filesize($file_source)) {
  $fp = fopen($file_source, 'rb');

  header('Pragma: public');
  header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  header('Cache-Control: no-store, no-cache, must-revalidate');
  header('Cache-Control: pre-check=0, post-check=0, max-age=0');
  header('Content-Transfer-Encoding: none');
  header('Content-type: '.get_mimetype($file_source));
  header('Content-Length: '.filesize($file_source));
  header('Content-Disposition: attachment; filename="'.$file_name.'"');

  fpassthru($fp);
  fclose($fp);

}

et une petite fonction pour connaitre le type mime en fonction du type de fichier, ou utiliser la méthode de la classe TBS OOo pour connaitre le type mime

function get_mimetype($filename)
{
  $mimetypes = array(
    'ez'    => 'application/andrew-inset',
    'hqx'   => 'application/mac-binhex40',
    'cpt'   => 'application/mac-compactpro',
    'doc'   => 'application/msword',
    'bin'   => 'application/octet-stream',
    'dms'   => 'application/octet-stream',
    'lha'   => 'application/octet-stream',
    'lzh'   => 'application/octet-stream',
    'exe'   => 'application/octet-stream',
    'class' => 'application/octet-stream',
    'so'    => 'application/octet-stream',
    'dll'   => 'application/octet-stream',
    'oda'   => 'application/oda',
    'pdf'   => 'application/pdf',
    'ai'    => 'application/postscript',
    'eps'   => 'application/postscript',
    'ps'    => 'application/postscript',
    'smi'   => 'application/smil',
    'smil'  => 'application/smil',
    'wbxml' => 'application/vnd.wap.wbxml',
    'wmlc'  => 'application/vnd.wap.wmlc',
    'wmlsc' => 'application/vnd.wap.wmlscriptc',
    'bcpio' => 'application/x-bcpio',
    'vcd'   => 'application/x-cdlink',
    'pgn'   => 'application/x-chess-pgn',
    'cpio'  => 'application/x-cpio',
    'csh'   => 'application/x-csh',
    'dcr'   => 'application/x-director',
    'dir'   => 'application/x-director',
    'dxr'   => 'application/x-director',
    'dvi'   => 'application/x-dvi',
    'spl'   => 'application/x-futuresplash',
    'gtar'  => 'application/x-gtar',
    'hdf'   => 'application/x-hdf',
    'js'    => 'application/x-javascript',
    'skp'   => 'application/x-koan',
    'skd'   => 'application/x-koan',
    'skt'   => 'application/x-koan',
    'skm'   => 'application/x-koan',
    'latex' => 'application/x-latex',
    'nc'    => 'application/x-netcdf',
    'cdf'   => 'application/x-netcdf',
    'sh'    => 'application/x-sh',
    'shar'  => 'application/x-shar',
    'swf'   => 'application/x-shockwave-flash',
    'sit'   => 'application/x-stuffit',
    'sv4cpio' => 'application/x-sv4cpio',
    'sv4crc' => 'application/x-sv4crc',
    'tar'   => 'application/x-tar',
    'tcl'   => 'application/x-tcl',
    'tex'   => 'application/x-tex',
    'texinfo' => 'application/x-texinfo',
    'texi'  => 'application/x-texinfo',
    't'     => 'application/x-troff',
    'tr'    => 'application/x-troff',
    'roff'  => 'application/x-troff',
    'man'   => 'application/x-troff-man',
    'me'    => 'application/x-troff-me',
    'ms'    => 'application/x-troff-ms',
    'ustar' => 'application/x-ustar',
    'src'   => 'application/x-wais-source',
    'xhtml' => 'application/xhtml+xml',
    'xht'   => 'application/xhtml+xml',
    'zip'   => 'application/zip',
    'au'    => 'audio/basic',
    'snd'   => 'audio/basic',
    'mid'   => 'audio/midi',
    'midi'  => 'audio/midi',
    'kar'   => 'audio/midi',
    'mpga'  => 'audio/mpeg',
    'mp2'   => 'audio/mpeg',
    'mp3'   => 'audio/mpeg',
    'aif'   => 'audio/x-aiff',
    'aiff'  => 'audio/x-aiff',
    'aifc'  => 'audio/x-aiff',
    'm3u'   => 'audio/x-mpegurl',
    'ram'   => 'audio/x-pn-realaudio',
    'rm'    => 'audio/x-pn-realaudio',
    'rpm'   => 'audio/x-pn-realaudio-plugin',
    'ra'    => 'audio/x-realaudio',
    'wav'   => 'audio/x-wav',
    'pdb'   => 'chemical/x-pdb',
    'xyz'   => 'chemical/x-xyz',
    'bmp'   => 'image/bmp',
    'gif'   => 'image/gif',
    'ief'   => 'image/ief',
    'jpeg'  => 'image/jpeg',
    'jpg'   => 'image/jpeg',
    'jpe'   => 'image/jpeg',
    'png'   => 'image/png',
    'tiff'  => 'image/tiff',
    'tif'   => 'image/tif',
    'djvu'  => 'image/vnd.djvu',
    'djv'   => 'image/vnd.djvu',
    'wbmp'  => 'image/vnd.wap.wbmp',
    'ras'   => 'image/x-cmu-raster',
    'pnm'   => 'image/x-portable-anymap',
    'pbm'   => 'image/x-portable-bitmap',
    'pgm'   => 'image/x-portable-graymap',
    'ppm'   => 'image/x-portable-pixmap',
    'rgb'   => 'image/x-rgb',
    'xbm'   => 'image/x-xbitmap',
    'xpm'   => 'image/x-xpixmap',
    'xwd'   => 'image/x-windowdump',
    'igs'   => 'model/iges',
    'iges'  => 'model/iges',
    'msh'   => 'model/mesh',
    'mesh'  => 'model/mesh',
    'silo'  => 'model/mesh',
    'wrl'   => 'model/vrml',
    'vrml'  => 'model/vrml',
    'css'   => 'text/css',
    'html'  => 'text/html',
    'htm'   => 'text/html',
    'asc'   => 'text/plain',
    'txt'   => 'text/plain',
    'rtx'   => 'text/richtext',
    'rtf'   => 'text/rtf',
    'sgml'  => 'text/sgml',
    'sgm'   => 'text/sgml',
    'tsv'   => 'text/tab-seperated-values',
    'wml'   => 'text/vnd.wap.wml',
    'wmls'  => 'text/vnd.wap.wmlscript',
    'etx'   => 'text/x-setext',
    'xml'   => 'text/xml',
    'xsl'   => 'text/xml',
    'mpeg'  => 'video/mpeg',
    'mpg'   => 'video/mpeg',
    'mpe'   => 'video/mpeg',
    'qt'    => 'video/quicktime',
    'mov'   => 'video/quicktime',
    'mxu'   => 'video/vnd.mpegurl',
    'avi'   => 'video/x-msvideo',
    'movie' => 'video/x-sgi-movie',
    'ice'   => 'x-conference-xcooltalk',
    'sxw'   => 'application/vnd.sun.xml.writer',
    'stw'   => 'application/vnd.sun.xml.writer.template',
    'sxg'   => 'application/vnd.sun.xml.writer.global',
    'sxc'   => 'application/vnd.sun.xml.calc',
    'stc'   => 'application/vnd.sun.xml.calc.template',
    'sxi'   => 'application/vnd.sun.xml.impress',
    'sti'   => 'application/vnd.sun.xml.impress.template',
    'sxd'   => 'application/vnd.sun.xml.draw',
    'std'   => 'application/vnd.sun.xml.draw.template',
    'sxm'   => 'application/vnd.sun.xml.math',
    'odt'   => 'application/vnd.oasis.opendocument.text',
    'ott'   => 'application/vnd.oasis.opendocument.text-template',
    'oth'   => 'application/vnd.oasis.opendocument.text-web',
    'odm'   => 'application/vnd.oasis.opendocument.text-master',
    'odg'   => 'application/vnd.oasis.opendocument.graphics',
    'otg'   => 'application/vnd.oasis.opendocument.graphics-template',
    'odp'   => 'application/vnd.oasis.opendocument.presentation',
    'otp'   => 'application/vnd.oasis.opendocument.presentation-template',
    'ods'   => 'application/vnd.oasis.opendocument.spreadsheet',
    'ots'   => 'application/vnd.oasis.opendocument.spreadsheet-template',
    'odc'   => 'application/vnd.oasis.opendocument.chart',
    'odf'   => 'application/vnd.oasis.opendocument.formula',
    'odb'   => 'application/vnd.oasis.opendocument.database',
    'odi'   => 'application/vnd.oasis.opendocument.image',
  );

  $a_pathinfo = pathinfo($filename);
  if (isset($mimetypes[$a_pathinfo['extension']])) {
    return $mimetypes[$a_pathinfo['extension']];
  } else {
    return "application/octet-stream";
  }
}

Olivier

PS : je n'ai jamais utilisé LDAP...
By: Eric
Date: 2006-11-29
Time: 06:37

Re: Tbsooo + apache ldap authentification = sélection d'un filtre

J'ai rajouté les header manquants (je n'utilisais que content-type et content-length)
et tout fonctionne parfaitement

Merci de ton aide Olivier, c'est super sympa !!!
Eric