blob: 614232360c655bf2b8761ac658addc9bcadb5ce0 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.2 from xdocs/index.xml at 22 September 2021
| Rendered using Apache Maven Fluido Skin 1.9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
<meta name="author" content="Eric Pugh" />
<title>Fulcrum Upload &#x2013; Upload Component</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script src="./js/apache-maven-fluido-1.9.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<header>
<div id="banner">
<div class="pull-left"><a href="https://turbine.apache.org/" id="bannerLeft" title="Apache Turbine"><img src="https://turbine.apache.org/images/turbine-project.png" alt="Apache Turbine"/></a></div>
<div class="pull-right"></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 22 September 2021<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.0.6-SNAPSHOT</li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://turbine.apache.org/fulcrum/" class="externalLink" title="Fulcrum">Fulcrum</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://turbine.apache.org/" class="externalLink" title="Turbine">Turbine</a></li>
<li class="pull-right"><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a></li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Overview</li>
<li class="active"><a href="#"><span class="none"></span>Main</a></li>
<li class="nav-header">Project Documentation</li>
<li><a href="project-info.html" title="Project Information"><span class="icon-chevron-down"></span>Project Information</a>
<ul class="nav nav-list">
<li><a href="dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a></li>
<li><a href="dependency-info.html" title="Dependency Information"><span class="none"></span>Dependency Information</a></li>
<li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a></li>
<li class="active"><a href="#"><span class="none"></span>About</a></li>
<li><a href="issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li>
<li><a href="licenses.html" title="Licenses"><span class="none"></span>Licenses</a></li>
<li><a href="mailing-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a></li>
<li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a></li>
<li><a href="plugins.html" title="Plugins"><span class="none"></span>Plugins</a></li>
<li><a href="scm.html" title="Source Code Management"><span class="none"></span>Source Code Management</a></li>
<li><a href="summary.html" title="Summary"><span class="none"></span>Summary</a></li>
<li><a href="team.html" title="Team"><span class="none"></span>Team</a></li>
</ul></li>
<li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li>
<li class="nav-header">Apache</li>
<li><a href="https://www.apache.org/" class="externalLink" title="Apache Website"><span class="none"></span>Apache Website</a></li>
<li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li>
<li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How the ASF works"><span class="none"></span>How the ASF works</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li>
<li><a href="https://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10" >
<section>
<h2><a name="Overview"></a>Overview</h2>
<p>
The Upload Service handles the parsing of multi-part/form-data from
POST Requests for Servlets and Portlets, making the multi-part files available
from either memory or from a specified location on the file system.
</p>
<p>
It is written for use in Turbine but it can be used in Avalon
compatible container.
</p>
</section>
<section>
<h2><a name="Configuration"></a>Configuration</h2>
<section>
<h3><a name="Role_Configuration"></a>Role Configuration</h3>
<div class="source"><pre class="prettyprint">
&lt;role
name=&quot;org.apache.fulcrum.upload.UploadService&quot;
shorthand=&quot;upload&quot;
default-class=&quot;org.apache.fulcrum.upload.DefaultUploadService&quot;/&gt;
</pre></div>
</section>
<section>
<h3><a name="Component_Configuration"></a>Component Configuration</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Item</th>
<th>Datatype</th>
<th>Cardinality</th>
<th>Description</th>
</tr>
<tr class="b">
<td>repository</td>
<td>String</td>
<td>[0|1]</td>
<td>
The directory where files will be temporarily stored (default is
&quot;.&quot;).
On Win32 file systems an entry of the form
<code>f:\path\to\upload\repository</code>
is most likely necessary.
</td>
</tr>
<tr class="a">
<td>sizeMax</td>
<td>Integer</td>
<td>[0|1]</td>
<td>
The maximum size of a request that will be processed
(default is 1048576 bytes).
</td>
</tr>
<tr class="b">
<td>sizeThreshold</td>
<td>Integer</td>
<td>[0|1]</td>
<td>
The maximum size of a request that will have it's elements cached in
memory (default is 10240 bytes).
</td>
</tr>
<tr class="a">
<td>headerEncoding</td>
<td>String</td>
<td>[0|1]</td>
<td>
Used to specify how the headers are encoded (default is
&quot;ISO-8859-1&quot;).
</td>
</tr>
</table>
</section>
<section>
<h3><a name="Component_Configuration_Example"></a>Component Configuration Example</h3>
<div class="source"><pre class="prettyprint">
&lt;upload repository=&quot;target&quot; sizeMax=&quot;1048576&quot; sizeThreshold=&quot;10240&quot; headerEncoding=&quot;UTF-8&quot;/&gt;
</pre></div>
</section>
</section>
<section>
<h2><a name="Usage"></a>Usage</h2>
<p>
Create an HTML form of the type:
</p>
<div class="source"><pre class="prettyprint">
&lt;form enctype=&quot;multipart/form-data&quot; method=&quot;POST&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;UploadExample&quot; /&gt;
&lt;input type=&quot;file&quot; name=&quot;filename&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;upload&quot; /&gt;
&lt;/form&gt;
</pre></div>
<p>
The Upload Service manages the storage of the FileItem in memory or at
the configured repository location in the file system. It is also possible to
override the repository location using the overloaded parseRequest()
methods.
</p>
<p>
Typically a request would be parsed using the Fulcrum ParameterParser
service, but you can achieve this manually thus:
</p>
<div class="source"><pre class="prettyprint">
UploadService us = (UploadService) this.lookup(UploadService.ROLE);
List fileItems = us.parse(request);
</pre></div>
<p>
FileItem provides many methods for working with the uploaded files that will
function whether a file is loaded into memory or as a temporary
file.
All the temporary storage management and clean up occurs behind the
scenes transparently to your application. FileItem objects do not span Requests,
finalizers remove any temporary files created along the way.
</p>
</section>
</main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>&#169; 2005&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>
</p>
</div>
</div>
</footer>
</body>
</html>