|
From: Jon O. <jon...@us...> - 2006-08-24 21:13:35
|
Update of /cvsroot/mxbb/mx_pafiledb/pafiledb/includes In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24435/modules/mx_pafiledb/pafiledb/includes Modified Files: functions.php functions_pafiledb.php Log Message: mimetypes... Index: functions.php =================================================================== RCS file: /cvsroot/mxbb/mx_pafiledb/pafiledb/includes/functions.php,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** functions.php 13 Aug 2006 18:53:09 -0000 1.30 --- functions.php 24 Aug 2006 21:13:31 -0000 1.31 *************** *** 1695,1699 **** // this function Borrowed from Acyd Burn attachment mod, (thanks Acyd for this great mod) // ========================================================================= ! function send_file_to_browser( $real_filename, $mimetype, $physical_filename, $upload_dir ) { global $_SERVER, $HTTP_USER_AGENT, $HTTP_SERVER_VARS, $lang, $db, $pafiledb_functions; --- 1695,1699 ---- // this function Borrowed from Acyd Burn attachment mod, (thanks Acyd for this great mod) // ========================================================================= ! function send_file_to_browser( $real_filename, $physical_filename, $upload_dir ) { global $_SERVER, $HTTP_USER_AGENT, $HTTP_SERVER_VARS, $lang, $db, $pafiledb_functions; *************** *** 1725,1758 **** // Determine the Browser the User is using, because of some nasty incompatibilities. ! // Most of the methods used in this function are from phpMyAdmin. :) ! ! $user_agent = ( !empty( $_SERVER['HTTP_USER_AGENT'] ) ) ? $_SERVER['HTTP_USER_AGENT'] : ( ( !empty( $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ) ) ? $HTTP_SERVER_VARS['HTTP_USER_AGENT'] : '' ); ! if ( ereg( 'Opera(/| )([0-9].[0-9]{1,2})', $user_agent, $log_version ) ) { $browser_version = $log_version[2]; $browser_agent = 'opera'; } ! else if ( ereg( 'MSIE ([0-9].[0-9]{1,2})', $user_agent, $log_version ) ) { $browser_version = $log_version[1]; $browser_agent = 'ie'; } ! else if ( ereg( 'OmniWeb/([0-9].[0-9]{1,2})', $user_agent, $log_version ) ) { $browser_version = $log_version[1]; $browser_agent = 'omniweb'; } ! else if ( ereg( '(Konqueror/)(.*)(;)', $user_agent, $log_version ) ) { $browser_version = $log_version[2]; $browser_agent = 'konqueror'; } ! else if ( ereg( 'Mozilla/([0-9].[0-9]{1,2})', $user_agent, $log_version ) && ereg( 'Safari/([0-9]*)', $user_agent, $log_version2 ) ) { $browser_version = $log_version[1] . '.' . $log_version2[1]; $browser_agent = 'safari'; } ! else if ( ereg( 'Mozilla/([0-9].[0-9]{1,2})', $user_agent, $log_version ) ) { $browser_version = $log_version[1]; --- 1725,1757 ---- // Determine the Browser the User is using, because of some nasty incompatibilities. ! // borrowed from phpMyAdmin. :) ! $user_agent = (!empty($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : ''; ! if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $user_agent, $log_version)) { $browser_version = $log_version[2]; $browser_agent = 'opera'; } ! else if (ereg('MSIE ([0-9].[0-9]{1,2})', $user_agent, $log_version)) { $browser_version = $log_version[1]; $browser_agent = 'ie'; } ! else if (ereg('OmniWeb/([0-9].[0-9]{1,2})', $user_agent, $log_version)) { $browser_version = $log_version[1]; $browser_agent = 'omniweb'; } ! else if (ereg('(Konqueror/)(.*)(;)', $user_agent, $log_version)) { $browser_version = $log_version[2]; $browser_agent = 'konqueror'; } ! else if (ereg('Mozilla/([0-9].[0-9]{1,2})', $user_agent, $log_version) && ereg('Safari/([0-9]*)', $user_agent, $log_version2)) { $browser_version = $log_version[1] . '.' . $log_version2[1]; $browser_agent = 'safari'; } ! else if (ereg('Mozilla/([0-9].[0-9]{1,2})', $user_agent, $log_version)) { $browser_version = $log_version[1]; *************** *** 1765,1823 **** } ! // Correct the Mime Type, if it's an octetstream if ( ( $mimetype == 'application/octet-stream' ) || ( $mimetype == 'application/octetstream' ) ) { ! if ( ( $browser_agent == 'ie' ) || ( $browser_agent == 'opera' ) ) ! { ! $mimetype = 'application/octetstream'; ! } ! else ! { ! $mimetype = 'application/octet-stream'; ! } } ! @ob_end_clean(); @ini_set( 'zlib.output_compression', 'Off' ); - header( 'Pragma: public' ); - header( 'Content-Transfer-Encoding: none' ); ! // Send out the Headers ! if ( $browser_agent == 'ie' ) { ! header( 'Content-Type: ' . $mimetype . '; name="' . $real_filename . '"' ); ! header( 'Content-Disposition: inline; filename="' . $real_filename . '"' ); } else { ! header( 'Content-Type: ' . $mimetype . '; name="' . $real_filename . '"' ); ! header( 'Content-Disposition: attachment; filename=' . $real_filename ); } // Now send the File Contents to the Browser ! if ( $gotit ) { ! if ( $size ) { ! header( "Content-length: $size" ); } ! $result = @readfile( $filename ); ! ! if ( !$result ) ! { ! return true; ! } ! } ! else ! { ! return false; } ! @flush(); ! exit(); } --- 1764,1916 ---- } ! // ! // Get mimetype ! // ! switch ($pafiledb_functions->get_extension($physical_filename)) ! { ! case 'pdf': ! $mimetype = 'application/pdf'; ! break; ! ! case 'zip': ! $mimetype = 'application/zip'; ! break; ! ! case 'gzip': ! $mimetype = 'application/x-gzip'; ! break; ! ! case 'tar': ! $mimetype = 'application/x-tar'; ! break; ! ! case 'tar.gz': ! $mimetype = 'application/x-gzip'; ! break; ! ! case 'tar.bz2': ! $mimetype = 'application/x-bzip2'; ! break; ! ! case 'doc': ! $mimetype = 'application/msword'; ! break; ! ! // Windows Media Player ! case 'mpg': ! $mimetype = 'application/x-mplayer2'; ! break; ! ! case 'mp3': ! $mimetype = 'audio/mp3'; ! break; ! ! /* ! case 'asx': ! $mimetype = 'video/x-ms-asf'; ! break; ! ! case 'wma': ! $mimetype = 'audio/x-ms-wma'; ! break; ! ! case 'wax': ! $mimetype = 'audio/x-ms-wax'; ! break; ! ! case 'wmv': ! $mimetype = 'video/x-ms-wmv'; ! break; ! ! case 'wvx': ! $mimetype = 'video/x-ms-wvx'; ! break; ! ! case 'wm': ! $mimetype = 'video/x-ms-wm'; ! break; ! ! case 'wmx': ! $mimetype = 'video/x-ms-wmx'; ! break; + case 'wmz': + $mimetype = 'application/x-ms-wmz'; + break; + + case 'wmd': + $mimetype = 'application/x-ms-wmd'; + break; + */ + + // Real Player + case 'rpm': + $mimetype = 'audio/x-pn-realaudio-plugin'; + break; + + default: + $mimetype = ($browser_agent == 'ie' || $browser_agent == 'opera') ? 'application/octetstream' : 'application/octet-stream'; + break; + } + + // + // Correct the Mime Type, if it's an octetstream + // + /* if ( ( $mimetype == 'application/octet-stream' ) || ( $mimetype == 'application/octetstream' ) ) { ! $mimetype = ($browser_agent == 'ie' || $browser_agent == 'opera') ? 'application/octetstream' : 'application/octet-stream'; } + */ ! // Correct the mime type - we force application/octetstream for all files, except images ! // Please do not change this, it is a security precaution ! //$mimetype = ($browser_agent == 'ie' || $browser_agent == 'opera') ? 'application/octetstream' : 'application/octet-stream'; ! ! if (@ob_get_length()) ! { ! @ob_end_clean(); ! } @ini_set( 'zlib.output_compression', 'Off' ); ! header('Pragma: public'); ! // Send out the Headers ! if ( isset($_GET['save_as']) ) { ! // ! // Force the "save file as" dialog ! // ! //$mimetype = 'application/x-download'; // Fix for avoiding browser doing an 'inline' for known mimetype anyway ! header('Content-Type: ' . $mimetype . '; name="' . $real_filename . '"'); ! header('Content-Disposition: attachment; filename="' . $real_filename . '"'); } else { ! header('Content-Type: ' . $mimetype . '; name="' . $real_filename . '"'); ! header('Content-Disposition: inline; filename="' . $real_filename . '"'); } // Now send the File Contents to the Browser + $size = @filesize($filename); + if ($size) + { + header("Content-length: $size"); + } + $result = @readfile($filename); ! if (!$result) { ! // PHP track_errors setting On? ! if (!empty($php_errormsg)) { ! mx_message_die( GENERAL_ERROR, 'Unable to deliver file.<br />Error was: ' . $php_errormsg, E_USER_WARNING); } ! mx_message_die( GENERAL_ERROR, 'Unable to deliver file.'); } ! flush(); ! exit; } Index: functions_pafiledb.php =================================================================== RCS file: /cvsroot/mxbb/mx_pafiledb/pafiledb/includes/functions_pafiledb.php,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** functions_pafiledb.php 15 Aug 2006 19:08:33 -0000 1.42 --- functions_pafiledb.php 24 Aug 2006 21:13:32 -0000 1.43 *************** *** 1101,1104 **** --- 1101,1106 ---- } + $save_as_icon = $module_root_path . ICONS_DIR . 'icon_download1.gif'; + // // Poster *************** *** 1114,1118 **** --- 1116,1122 ---- $pafiledb_template->assign_block_vars( "file_rows", array( 'L_NEW_FILE' => $lang['New_file'], + 'L_SAVE_AS' => $lang['Save_as'], 'PIN_IMAGE' => $posticon, + 'SAVE_AS_IMAGE' => $save_as_icon, 'FILE_NAME' => $file_rowset[$i]['file_name'], 'FILE_DESC' => $file_rowset[$i]['file_desc'], *************** *** 1132,1135 **** --- 1136,1140 ---- 'U_FILE' => append_sid( $this->this_mxurl( 'action=file&file_id=' . $file_rowset[$i]['file_id'], false, false, $target_page_id ) ), 'U_FILE_JUMP' => append_sid( $this->this_mxurl( 'action=download&file_id=' . $file_rowset[$i]['file_id'], true, false ) ), + 'U_FILE_JUMP_SAVE_AS' => append_sid( $this->this_mxurl( 'action=download&file_id=' . $file_rowset[$i]['file_id'] . '&save_as', true, false ) ), 'COLOR' => ( ( $i % 2 ) ? "row2" : "row1" ), 'POSTER' => $file_poster, |