Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Catalyst::Request::UplUser3Contributed Perl DocumeCatalyst::Request::Upload(3)

       Catalyst::Request::Upload - handles file	upload requests

	   my $upload =	$c->req->upload('field');


       To specify where	Catalyst should	put the	temporary files, set the
       'uploadtmp' option in the Catalyst config. If unset, Catalyst will use
       the system temp dir.

	   __PACKAGE__->config(	uploadtmp => '/path/to/tmpdir' );

       See also	Catalyst.

       This class provides accessors and methods to handle client upload

       Simple constructor.

       Copies the temporary file using File::Copy. Returns true	for success,
       false for failure.


       Please note the filename	used for the copy target is the	'tempname'
       that is the actual filename on the filesystem, NOT the 'filename' that
       was part	of the upload headers.	This might seem	counter	intuitive but
       at this point this behavior is so established that its not something we
       can change.

       You can always create your own copy routine that	munges the target path
       as you wish.

       Returns true of the upload defines a character set at that value	is
       'UTF-8'.	 This does not try to inspect your upload and make any guesses
       if the Content Type charset is undefined.

       Opens a temporary file (see tempname below) and returns an IO::File

       This is a filehandle that is opened with	no additional IO Layers.

       Returns a filehandle that has binmode set to UTF-8 if a UTF-8 character
       set is found. This also accepts an override encoding value that you can
       use to force a particular PerlIO	layer.	If neither are found the
       filehandle is set to :raw.

       This is useful if you are pulling the file into code and	inspecting
       bits and	maybe then sending those bits back as the response.  (Please
       note this is not	a suitable filehandle to set in	the body; use "fh" if
       you are doing that).

       Please note that	using this method sets the underlying filehandle IO
       layer so	once you use this method if you	go back	and use	the "fh"
       method you still	get the	IO layer applied.

       Returns the client-supplied filename.

       Returns an HTTP::Headers	object for the request.

       Creates a hard link to the temporary file. Returns true for success,
       false for failure.


       Returns the size	of the uploaded	file in	bytes.

       Optionally accepts an argument to define	an IO Layer (which is applied
       to the filehandle via binmode; if no layer is defined the default is
       set to ":raw".

       Returns a scalar	containing the contents	of the temporary file.

       Note that this will cause the filehandle	pointed	to by "$upload->fh" to
       be reset	to the start of	the file using seek and	the file handle	to be
       put into	whatever encoding mode is applied.

       Works just like "slurp" except we use "decoded_fh" instead of "fh" to
       open a filehandle to slurp.  This means if your upload charset is UTF8
       we binmode the filehandle to that encoding.

       Returns basename	for "filename".	 This filters the name through a
       regexp "basename	=~ s|[^\w\.-]+|_|g" to make it safe for	filesystems
       that don't like advanced	characters.  This will of course filter	UTF8
       characters.  If you need	the exact basename unfiltered use

       Just like "basename" but	without	filtering the filename for characters
       that don't always write to a filesystem.

       Returns the path	to the temporary file.

       Returns the client-supplied Content-Type.

       The character set information part of the content type, if any.	Useful
       if you need to figure out any encodings on the file upload.

       Provided	by Moose

       Catalyst	Contributors, see

       This library is free software. You can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2018-10-31	  Catalyst::Request::Upload(3)


Want to link to this manual page? Use this URL:

home | help