Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cgi::application::plugin::stream(3pm) [debian man page]

CGI::Application::Plugin::Stream(3pm)			User Contributed Perl Documentation		     CGI::Application::Plugin::Stream(3pm)

NAME
CGI::Application::Plugin::Stream - CGI::Application Plugin for streaming files SYNOPSIS
use CGI::Application::Plugin::Stream (qw/stream_file/); sub runmode { # ... # Set up any headers you want to set explicitly # using header_props() or header_add() as usual #... if ( $self->stream_file( $file ) ) { return; } else { return $self->error_mode(); } } DESCRIPTION
This plugin provides a way to stream a file back to the user. This is useful if you are creating a PDF or Spreadsheet document dynamically to deliver to the user. The file is read and printed in small chunks to keep memory consumption down. This plugin is a consumer, as in your runmode shouldn't try to do any output or anything afterwards. This plugin affects the HTTP response headers, so anything you do afterwards will probably not work. If you pass along a filehandle, we'll make sure to close it for you. It's recommended that you increment $| (or set it to 1), which will autoflush the buffer as your application is streaming out the file. METHODS
stream_file() $self->stream_file($fh); $self->stream_file( '/path/to/file',2048); This method can take two parameters, the first the path to the file or a filehandle and the second, an optional number of bytes to determine the chunk size of the stream. It defaults to 1024. It will either stream a file to the user or return false if it fails, perhaps because it couldn't find the file you referenced. We highly recommend you provide a file name if passing along a filehandle, as we won't be able to deduce the file name, and will use 'FILE' by default. Example: $self->header_add( -attachment => 'my_file.txt' ); With both a file handle or file name, we will try to determine the correct content type by using File::MMagic. A default of 'application/octet-stream' will be used if File::MMagic can't figure it out. The size will be calculated and added to the headers as well. Again, you can set these explicitly if you want as well: $self->header_add( -type => 'text/plain', -Content_Length => 42, # bytes ); AUTHOR
Jason Purdy, <Jason@Purdy.INFO>, with inspiration from Tobias Henoeckl and tremendous support from the cgiapp mailing list. Mark Stosberg also contributed to this module. SEE ALSO
CGI::Application, http://www.cgi-app.org <http://www.cgi-app.org>, "CREATING A STANDARD HTTP HEADER" in CGI.pm, http://www.mail-archive.com/cgiapp@lists.erlbaum.net/msg02660.html <http://www.mail-archive.com/cgiapp@lists.erlbaum.net/msg02660.html>, File::Basename, "$|" in perlvar LICENSE
Copyright (C) 2004-2005 Jason Purdy, <Jason@Purdy.INFO> This library is free software. You can modify and or distribute it under the same terms as Perl itself. perl v5.12.3 2011-06-26 CGI::Application::Plugin::Stream(3pm)

Check Out this Related Man Page

CGI::Application::Plugin::DBIProfile::Graph::HTML(3pm)	User Contributed Perl Documentation CGI::Application::Plugin::DBIProfile::Graph::HTML(3pm)

NAME
CGI::Application::Plugin::DBIProfile::Graph::HTML - VERY basic pure html vertical bar graphing for CAP:DBIProfile. SYNOPSIS
# in httpd.conf SetVar CAP_DBIPROFILE_GRAPHMODULE CGI::Application::Plugin::DBIProfile::Graph::HTML PerlSetVar CAP_DBIPROFILE_GRAPHMODULE CGI::Application::Plugin::DBIProfile::Graph::HTML DESCRIPTION
This module is provided as a basic implementation of graphing for CAP:DBIProfile. It can be used as an example to develop other, more sophisticated, graphing solutions. GRAPH PLUGIN DEVELOPMENT
The graphing plugin must have a method called "build_graph", which must accept options as a hash. It should return a scalar or scalar ref holding the HTML output needed to generate your graph. The following options will be passed to the "build_graph" method: self The cgiapp object. mode_param $self->mode_param - the runmode variable used to determine runmode (useful for creating links back to ourselves). title A textual title for your graph. You don't have to use this, but is there if you want it. ylabel Label for values we're graphing. Either "Count" or "Seconds". data An array of the datapoints to graph. tags Labels for each datapoint which match the labels that will be used on the sql statement list (1 to however many items there are). The easiest graphs to implement are fully inline - ie. it doesn't need to make any external calls (no <image> or <embed> tags and such). CGI::Application::Plugin::DBIProfile::Graph::HTML is an example of this. Other possible candidates are Plotr and Open Flash Chart (using js interface to populate data). Another inline solution is to use the <img src="data:uri"> scheme. An example of this can be found in CGI::Application::Plugin::DBIProfile::Graph::GDGraphInline. Please note, this isn't supported under MSIE. In order to generate a graph that isn't inline, you'll need to pass the data to be graphed with your call to the external object. For example, if you want to use GDGraph, you could create a separate cgi script that returns graphs based on params passed to it, and return an approapriate image tag to from your graphing module. For example: <img src="/cgi-bin/graph.pl?data=20,14,42&tags=1,2,3"> Another way, would be to add a runmode in a CGI::Application "init" hook, and pass that runmode in a link back to the same script, and include your graph module in our script with a use statement. An example of this can be found in CGI::Application::Plugin::DBIProfile::Graph::SVGTT. REQUIREMENTS
L<HTML::Template> SEE ALSO
L<CGI::Application::Plugin::DBIProfile> L<CGI::Application::Plugin::DBIProfile::Graph::GDGraphInline> L<CGI::Application::Plugin::DBIProfile::Graph::SVGTT> AUTHOR
Joshua I Miller, L<unrtst@cpan.org> COPYRIGHT &; LICENSE Copyright 2007 Joshua Miller, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.4 2011-11-10 CGI::Application::Plugin::DBIProfile::Graph::HTML(3pm)
Man Page