欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

自己亲自做的 浏览器 输出 pdf 可以根据下面的代码 找 drupal 中相应的代码(比如 doc excel )(其实就是下载吧) 有大用 有大大用

function custom_one_chakan_bin_files($fid,$file_path){
   $file_path = urldecode($file_path);
   $type = file_get_mimetype($file_path);
   if($type=='pdf' || $type=='application/pdf'){
       $content_type = 'application/pdf';
   }

   $uri = _getFileUri($fid);

   if(_startWith($uri,'public://')){
      $cache_control =  'public';
   }else if(_startWith($uri,'private://')){
       $cache_control =  'private';
   }

   $arr_headers = array(
       'Content-Type'=>$content_type,
       'Content-Length'=>filesize($file_path),
       'Cache-Control'=>$cache_control,
   );

   //下面的代码借鉴 file.inc 中 file_transfer 函数
   //$cache_control的值 为 public 或 private
   $uri = $cache_control."://".$file_path;
   $headers = $arr_headers;
   if (ob_get_level()) {
       ob_end_clean();
   }

   foreach ($headers as $name => $value) {
       drupal_add_http_header($name, $value);
   }
   drupal_send_headers();
   $scheme = file_uri_scheme($uri);

   // Transfer file in 1024 byte chunks to save memory usage.
   if ($scheme && file_stream_wrapper_valid_scheme($scheme) && $fd = fopen($file_path, 'rb')) {
       while (!feof($fd)) {
           print fread($fd, 1024);
       }
       fclose($fd);
   }
   else {
       drupal_not_found();
   }
   drupal_exit();

}


下面是各种类型 

'mimetypes' => array(
 0 => 'application/andrew-inset',
 1 => 'application/atom',
 2 => 'application/atomcat+xml',
 3 => 'application/atomserv+xml',
 4 => 'application/cap',
 5 => 'application/cu-seeme',
 6 => 'application/dsptype',
 350 => 'application/epub+zip',
 7 => 'application/hta',
 8 => 'application/java-archive',
 9 => 'application/java-serialized-object',
 10 => 'application/java-vm',
 11 => 'application/mac-binhex40',
 12 => 'application/mathematica',
 13 => 'application/msaccess',
 14 => 'application/msword',
 15 => 'application/octet-stream',
 16 => 'application/oda',
 17 => 'application/ogg',
 18 => 'application/pdf',
 19 => 'application/pgp-keys',
 20 => 'application/pgp-signature',
 21 => 'application/pics-rules',
 22 => 'application/postscript',
 23 => 'application/rar',
 24 => 'application/rdf+xml',
 25 => 'application/rss+xml',
 26 => 'application/rtf',
 27 => 'application/smil',
 349 => 'application/vnd.amazon.ebook',
 28 => 'application/vnd.cinderella',
 29 => 'application/vnd.google-earth.kml+xml',
 30 => 'application/vnd.google-earth.kmz',
 31 => 'application/vnd.mozilla.xul+xml',
 32 => 'application/vnd.ms-excel',
 33 => 'application/vnd.ms-excel.addin.macroEnabled.12',
 34 => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
 35 => 'application/vnd.ms-excel.sheet.macroEnabled.12',
 36 => 'application/vnd.ms-excel.template.macroEnabled.12',
 37 => 'application/vnd.ms-pki.seccat',
 38 => 'application/vnd.ms-pki.stl',
 39 => 'application/vnd.ms-powerpoint',
 40 => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
 41 => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
 42 => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
 43 => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
 44 => 'application/vnd.ms-word.document.macroEnabled.12',
 45 => 'application/vnd.ms-word.template.macroEnabled.12',
 46 => 'application/vnd.ms-xpsdocument',
 47 => 'application/vnd.oasis.opendocument.chart',
 48 => 'application/vnd.oasis.opendocument.database',
 49 => 'application/vnd.oasis.opendocument.formula',
 50 => 'application/vnd.oasis.opendocument.graphics',
 51 => 'application/vnd.oasis.opendocument.graphics-template',
 52 => 'application/vnd.oasis.opendocument.image',
 53 => 'application/vnd.oasis.opendocument.presentation',
 54 => 'application/vnd.oasis.opendocument.presentation-template',
 55 => 'application/vnd.oasis.opendocument.spreadsheet',
 56 => 'application/vnd.oasis.opendocument.spreadsheet-template',
 57 => 'application/vnd.oasis.opendocument.text',
 58 => 'application/vnd.oasis.opendocument.text-master',
 59 => 'application/vnd.oasis.opendocument.text-template',
 60 => 'application/vnd.oasis.opendocument.text-web',
 61 => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
 62 => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
 63 => 'application/vnd.openxmlformats-officedocument.presentationml.template',
 64 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
 65 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
 66 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
 67 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
 68 => 'application/vnd.rim.cod',
 69 => 'application/vnd.smaf',
 70 => 'application/vnd.stardivision.calc',
 71 => 'application/vnd.stardivision.chart',
 72 => 'application/vnd.stardivision.draw',
 73 => 'application/vnd.stardivision.impress',
 74 => 'application/vnd.stardivision.math',
 75 => 'application/vnd.stardivision.writer',
 76 => 'application/vnd.stardivision.writer-global',
 77 => 'application/vnd.sun.xml.calc',
 78 => 'application/vnd.sun.xml.calc.template',
 79 => 'application/vnd.sun.xml.draw',
 80 => 'application/vnd.sun.xml.draw.template',
 81 => 'application/vnd.sun.xml.impress',
 82 => 'application/vnd.sun.xml.impress.template',
 83 => 'application/vnd.sun.xml.math',
 84 => 'application/vnd.sun.xml.writer',
 85 => 'application/vnd.sun.xml.writer.global',
 86 => 'application/vnd.sun.xml.writer.template',
 87 => 'application/vnd.symbian.install',
 88 => 'application/vnd.visio',
 89 => 'application/vnd.wap.wbxml',
 90 => 'application/vnd.wap.wmlc',
 91 => 'application/vnd.wap.wmlscriptc',
 92 => 'application/wordperfect',
 93 => 'application/wordperfect5.1',
 94 => 'application/x-123',
 95 => 'application/x-7z-compressed',
 96 => 'application/x-abiword',
 97 => 'application/x-apple-diskimage',
 98 => 'application/x-bcpio',
 99 => 'application/x-bittorrent',
 100 => 'application/x-cab',
 101 => 'application/x-cbr',
 102 => 'application/x-cbz',
 103 => 'application/x-cdf',
 104 => 'application/x-cdlink',
 105 => 'application/x-chess-pgn',
 106 => 'application/x-cpio',
 107 => 'application/x-debian-package',
 108 => 'application/x-director',
 109 => 'application/x-dms',
 110 => 'application/x-doom',
 111 => 'application/x-dvi',
 112 => 'application/x-flac',
 113 => 'application/x-font',
 114 => 'application/x-freemind',
 115 => 'application/x-futuresplash',
 116 => 'application/x-gnumeric',
 117 => 'application/x-go-sgf',
 118 => 'application/x-graphing-calculator',
 119 => 'application/x-gtar',
 120 => 'application/x-hdf',
 121 => 'application/x-httpd-eruby',
 122 => 'application/x-httpd-php',
 123 => 'application/x-httpd-php-source',
 124 => 'application/x-httpd-php3',
 125 => 'application/x-httpd-php3-preprocessed',
 126 => 'application/x-httpd-php4',
 127 => 'application/x-ica',
 128 => 'application/x-internet-signup',
 129 => 'application/x-iphone',
 130 => 'application/x-iso9660-image',
 131 => 'application/x-java-jnlp-file',
 132 => 'application/x-javascript',
 133 => 'application/x-jmol',
 134 => 'application/x-kchart',
 135 => 'application/x-killustrator',
 136 => 'application/x-koan',
 137 => 'application/x-kpresenter',
 138 => 'application/x-kspread',
 139 => 'application/x-kword',
 140 => 'application/x-latex',
 141 => 'application/x-lha',
 142 => 'application/x-lyx',
 143 => 'application/x-lzh',
 144 => 'application/x-lzx',
 145 => 'application/x-maker',
 146 => 'application/x-mif',
 351 => 'application/x-mobipocket-ebook',
 352 => 'application/x-mobipocket-ebook',
 147 => 'application/x-ms-wmd',
 148 => 'application/x-ms-wmz',
 149 => 'application/x-msdos-program',
 150 => 'application/x-msi',
 151 => 'application/x-netcdf',
 152 => 'application/x-ns-proxy-autoconfig',
 153 => 'application/x-nwc',
 154 => 'application/x-object',
 155 => 'application/x-oz-application',
 156 => 'application/x-pkcs7-certreqresp',
 157 => 'application/x-pkcs7-crl',
 158 => 'application/x-python-code',
 159 => 'application/x-quicktimeplayer',
 160 => 'application/x-redhat-package-manager',
 161 => 'application/x-shar',
 162 => 'application/x-shockwave-flash',
 163 => 'application/x-stuffit',
 164 => 'application/x-sv4cpio',
 165 => 'application/x-sv4crc',
 166 => 'application/x-tar',
 167 => 'application/x-tcl',
 168 => 'application/x-tex-gf',
 169 => 'application/x-tex-pk',
 170 => 'application/x-texinfo',
 171 => 'application/x-trash',
 172 => 'application/x-troff',
 173 => 'application/x-troff-man',
 174 => 'application/x-troff-me',
 175 => 'application/x-troff-ms',
 176 => 'application/x-ustar',
 177 => 'application/x-wais-source',
 178 => 'application/x-wingz',
 179 => 'application/x-x509-ca-cert',
 180 => 'application/x-xcf',
 181 => 'application/x-xfig',
 182 => 'application/x-xpinstall',
 183 => 'application/xhtml+xml',
 184 => 'application/xml',
 185 => 'application/zip',
 186 => 'audio/basic',
 187 => 'audio/midi',
 346 => 'audio/mp4',
 188 => 'audio/mpeg',
 189 => 'audio/ogg',
 190 => 'audio/prs.sid',
 356 => 'audio/webm',
 191 => 'audio/x-aiff',
 192 => 'audio/x-gsm',
 354 => 'audio/x-matroska',
 193 => 'audio/x-mpegurl',
 194 => 'audio/x-ms-wax',
 195 => 'audio/x-ms-wma',
 196 => 'audio/x-pn-realaudio',
 197 => 'audio/x-realaudio',
 198 => 'audio/x-scpls',
 199 => 'audio/x-sd2',
 200 => 'audio/x-wav',
 201 => 'chemical/x-alchemy',
 202 => 'chemical/x-cache',
 203 => 'chemical/x-cache-csf',
 204 => 'chemical/x-cactvs-binary',
 205 => 'chemical/x-cdx',
 206 => 'chemical/x-cerius',
 207 => 'chemical/x-chem3d',
 208 => 'chemical/x-chemdraw',
 209 => 'chemical/x-cif',
 210 => 'chemical/x-cmdf',
 211 => 'chemical/x-cml',
 212 => 'chemical/x-compass',
 213 => 'chemical/x-crossfire',
 214 => 'chemical/x-csml',
 215 => 'chemical/x-ctx',
 216 => 'chemical/x-cxf',
 217 => 'chemical/x-embl-dl-nucleotide',
 218 => 'chemical/x-galactic-spc',
 219 => 'chemical/x-gamess-input',
 220 => 'chemical/x-gaussian-checkpoint',
 221 => 'chemical/x-gaussian-cube',
 222 => 'chemical/x-gaussian-input',
 223 => 'chemical/x-gaussian-log',
 224 => 'chemical/x-gcg8-sequence',
 225 => 'chemical/x-genbank',
 226 => 'chemical/x-hin',
 227 => 'chemical/x-isostar',
 228 => 'chemical/x-jcamp-dx',
 229 => 'chemical/x-kinemage',
 230 => 'chemical/x-macmolecule',
 231 => 'chemical/x-macromodel-input',
 232 => 'chemical/x-mdl-molfile',
 233 => 'chemical/x-mdl-rdfile',
 234 => 'chemical/x-mdl-rxnfile',
 235 => 'chemical/x-mdl-sdfile',
 236 => 'chemical/x-mdl-tgf',
 237 => 'chemical/x-mmcif',
 238 => 'chemical/x-mol2',
 239 => 'chemical/x-molconn-Z',
 240 => 'chemical/x-mopac-graph',
 241 => 'chemical/x-mopac-input',
 242 => 'chemical/x-mopac-out',
 243 => 'chemical/x-mopac-vib',
 244 => 'chemical/x-ncbi-asn1-ascii',
 245 => 'chemical/x-ncbi-asn1-binary',
 246 => 'chemical/x-ncbi-asn1-spec',
 247 => 'chemical/x-pdb',
 248 => 'chemical/x-rosdal',
 249 => 'chemical/x-swissprot',
 250 => 'chemical/x-vamas-iso14976',
 251 => 'chemical/x-vmd',
 252 => 'chemical/x-xtel',
 253 => 'chemical/x-xyz',
 254 => 'image/gif',
 255 => 'image/ief',
 256 => 'image/jpeg',
 257 => 'image/pcx',
 258 => 'image/png',
 259 => 'image/svg+xml',
 260 => 'image/tiff',
 261 => 'image/vnd.djvu',
 262 => 'image/vnd.microsoft.icon',
 263 => 'image/vnd.wap.wbmp',
 355 => 'image/webp',
 264 => 'image/x-cmu-raster',
 265 => 'image/x-coreldraw',
 266 => 'image/x-coreldrawpattern',
 267 => 'image/x-coreldrawtemplate',
 268 => 'image/x-corelphotopaint',
 269 => 'image/x-jg',
 270 => 'image/x-jng',
 271 => 'image/x-ms-bmp',
 272 => 'image/x-photoshop',
 273 => 'image/x-portable-anymap',
 274 => 'image/x-portable-bitmap',
 275 => 'image/x-portable-graymap',
 276 => 'image/x-portable-pixmap',
 277 => 'image/x-rgb',
 278 => 'image/x-xbitmap',
 279 => 'image/x-xpixmap',
 280 => 'image/x-xwindowdump',
 281 => 'message/rfc822',
 282 => 'model/iges',
 283 => 'model/mesh',
 284 => 'model/vrml',
 285 => 'text/calendar',
 286 => 'text/css',
 287 => 'text/csv',
 288 => 'text/h323',
 289 => 'text/html',
 290 => 'text/iuls',
 291 => 'text/mathml',
 292 => 'text/plain',
 293 => 'text/richtext',
 294 => 'text/scriptlet',
 295 => 'text/tab-separated-values',
 296 => 'text/texmacs',
 297 => 'text/vnd.sun.j2me.app-descriptor',
 298 => 'text/vnd.wap.wml',
 299 => 'text/vnd.wap.wmlscript',
 358 => 'text/vtt',
 300 => 'text/x-bibtex',
 301 => 'text/x-boo',
 302 => 'text/x-c++hdr',
 303 => 'text/x-c++src',
 304 => 'text/x-chdr',
 305 => 'text/x-component',
 306 => 'text/x-csh',
 307 => 'text/x-csrc',
 308 => 'text/x-diff',
 309 => 'text/x-dsrc',
 310 => 'text/x-haskell',
 311 => 'text/x-java',
 312 => 'text/x-literate-haskell',
 313 => 'text/x-moc',
 314 => 'text/x-pascal',
 315 => 'text/x-pcs-gcd',
 316 => 'text/x-perl',
 317 => 'text/x-python',
 318 => 'text/x-setext',
 319 => 'text/x-sh',
 320 => 'text/x-tcl',
 321 => 'text/x-tex',
 322 => 'text/x-vcalendar',
 323 => 'text/x-vcard',
 324 => 'video/3gpp',
 325 => 'video/dl',
 326 => 'video/dv',
 327 => 'video/fli',
 328 => 'video/gl',
 329 => 'video/mp4',
 330 => 'video/mpeg',
 331 => 'video/ogg',
 332 => 'video/quicktime',
 333 => 'video/vnd.mpegurl',
 357 => 'video/webm',
 347 => 'video/x-flv',
 334 => 'video/x-la-asf',
 348 => 'video/x-m4v',
 353 => 'video/x-matroska',
 335 => 'video/x-mng',
 336 => 'video/x-ms-asf',
 337 => 'video/x-ms-wm',
 338 => 'video/x-ms-wmv',
 339 => 'video/x-ms-wmx',
 340 => 'video/x-ms-wvx',
 341 => 'video/x-msvideo',
 342 => 'video/x-sgi-movie',
 343 => 'x-conference/x-cooltalk',
 344 => 'x-epoc/x-sisx-app',
 345 => 'x-world/x-vrml',


普通分类: