rendered paste bodyclass Downloads_model extends Model {
function Downloads_model()
{
parent::Model();
$this->obj =& get_instance();
}
function headers($file_name)
{
$agent = $_SERVER["HTTP_USER_AGENT"];
if( is_int(strpos($agent, "MSIE")) )
{
# Remove reserved chars: :\/*?"<>|
$fn = preg_replace('/[:\\x5c\\/*?"<>|]/', '_', $file_name);
# Non-standard URL encoding:
$data = "Content-Disposition: attachment; filename=" . rawurlencode($fn);
return $data;
} else if( is_int(strpos($agent, "Gecko")) ){
# RFC 2231:
$data = "Content-Disposition: attachment; filename*=UTF-8''" . rawurlencode($file_name);
return $data;
} else if( is_int(strpos($agent, "Opera")) ) {
# Remove reserved chars: :\/*{?
$fn = preg_replace('/[:\\x5c\\/{?]/', '_', $file_name);
# RFC 2231:
$data = "Content-Disposition: attachment; filename*=UTF-8''" . rawurlencode($fn);
return $data;
} else {
# RFC 2616 ASCII-only encoding:
$fn = mb_convert_encoding($file_name, "US-ASCII", "UTF-8");
$fn = (string) str_replace("\\", "\\\\", $fn);
$fn = (string) str_replace("\"", "\\\"", $fn);
$data = "Content-Disposition: attachment; filename=\"$fn\"";
return $data;
}
}
}