blob: 22dd12a6ca0b534bee04fb47241bd8e8eae587e2 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id$ -->
<html>
<head>
<title>Upload</title>
<link rel="stylesheet" type="text/css" href="Tapestry.css" title="style">
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><A href="TextField.html"><IMG alt=TextField src="common-images/prev.png"></a></td>
<td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>
<td align="right"><A href="ValidField.html"><IMG alt=ValidField src="common-images/next.png"></a></td>
<tr>
<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td colspan="3">
<table border="0" cellpadding="4" cellspacing="4" width="100%">
<tr valign="top">
<td>
<table>
<tr>
<td><font size="+2"><b>Upload</b></font></td>
</tr>
<tr>
<td>
<A href="../api/org/apache/tapestry/form/Upload.html">
org.apache.tapestry.form.Upload</a>
</td>
</tr>
</table>
</td>
<td>
<table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8">
<tr>
<td><input type="file"></td>
</tr>
</table>
</td>
</tr>
<tr valign="center">
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2">
<b>Description</b>
<br>
A form element used to handle file uploads. The uploaded file is represented
by an instance of <a href="../api/org/apache/tapestry/request/IUploadFile.html">IUploadFile</a>.
By default the upload component limits the size of uploads to 10,000,000 bytes. To
alter this limit you can add the following to your *.application specification:
<pre>
&lt;extension name="org.apache.tapestry.multipart-decoder"
class="org.apache.tapestry.multipart.DefaultMultipartDecoder"&gt;
&lt;configure property-name="maxSize" type="double" value="134217728"/&gt;
&lt;!-- where the value is the maximum size you want to allow --&gt;
&lt;/extension&gt;
</pre>
<br>
Alternatively you can use:
<pre>
DefaultMultipartDecoder.getSharedInstance().setMaxSize(12345678);
</pre>
<br>
Setting the size to -1 will remove any limit checking.
</td>
</tr>
<tr>
<td colspan="2">
<b>See Also</b>
<br>
<A href="Form.html">Form</a>
</td>
</tr>
<tr>
<td colspan="2">
<b>Parameters</b>
<br>
<table border="1" cellpadding="4" cellspacing="4" class="parameters">
<tr>
<th>Name</th>
<th>Type</th>
<th>Direction</th>
<th>Required</th>
<th>Default</th>
<th>Description</th>
</tr>
<tr>
<td>file</td>
<td><A href="../api/org/apache/tapestry/request/IUploadFile.html"><tt>
IUploadFile</tt></a>
</td>
<td>out</td>
<td>yes</td>
<td>&nbsp;</td>
<td>Updated, when the form is submitted, with the name and content uploaded.
</td>
</tr>
<tr>
<td>disabled</td>
<td>boolean</td>
<td>in</td>
<td>no</td>
<td>false</td>
<td>If true, then (on render) the "disabled" attribute is written into the
tag and on submit, the upload will not update its file parameter.
Note Netscape Navigator 4 will ignore this attribute.
</td>
</tr>
</table><BR>Body: <STRONG>removed</STRONG><BR>
Informal parameters: <STRONG>allowed</STRONG><br>
Reserved parameters: "name", "type"
</td>
</tr>
<tr>
<td colspan="2">
<b>Examples</b>
<p>
Provides a file upload form and displays the results of the upload.
<p>
To save the uploaded file to the WEB context path, rather than the default
<tt>java</tt> path, use the <tt>ServletContext.getRealPath()</tt> method to
obtain the web application's directory path.
<form>
<table class="examples" cellpadding="4">
<tr>
<td colspan="2">File:&nbsp;<input type="file"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Upload"></td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td>File Name:</td><td>mybook.txt</td>
</tr>
<tr>
<td>Client Path:</td><td>C:\mybook.txt</td>
</tr>
<tr>
<td>Server Path:</td><td>C:\Program Files\Tomcat 4.0.4\bin\mybook.txt</td>
</tr>
<tr>
<td>File Truncated:</td><td>false</td>
</tr>
<tr>
<td>File Size:</td><td>2,399&nbsp;bytes</td>
</tr>
</table>
</form>
<pre>
&lt;form jwcid="@<a href="Form.html">Form</a>" listener="ognl:listener.formSubmit"&gt;
&lt;table bgcolor="#c0c0c0" cellpadding="4"&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;File:&amp;nbsp;&lt;input jwcid="<span class="jwcid">@<a href="Upload.html">Upload</a></span>" file="ognl:file" type= "file"&gt;&lt;/input&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;&lt;input type= "submit"value="Upload"&gt;&lt;/input&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;&lt;hr&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filename:&lt;/td&gt;&lt;td&gt;&lt;span jwcid="@<a href="Insert.html">Insert</a>" value="ognl:filename"/&gt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client path:&lt;/td&gt;&lt;td&gt;&lt;span jwcid="@<a href="Insert.html">Insert</a>" value="ognl:clientPath"/&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Path:&lt;/td&gt;&lt;td&gt;&lt;span jwcid="@<a href="Insert.html">Insert</a>" value="ognl:serverPath"/&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Truncated:&lt;/td&gt;&lt;td&gt;&lt;span jwcid="@<a href="Insert.html">Insert</a>" value="ognl:fileTruncated"/&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Size:&lt;/td&gt;&lt;td&gt;&lt;span jwcid="@<a href="Insert.html">Insert</a>" value="ognl:fileSize" format="ognl:@UploadPage@SIZE_FORMAT"/&gt;&amp;nbsp;bytes&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;
public class UploadPage extends BasePage {
public static final Format SIZE_FORMAT = NumberFormat.getNumberInstance();
private <a href="../api/org/apache/tapestry/request/IUploadFile.html">IUploadFile</a> file;
private File serverFile;
public IUploadFile getFile() { return file; }
public void setFile(IUploadFile value) {
file = value;
}
public String getFilename() {
if (file != null) {
return file.getFileName();
} else {
return "";
}
}
public String getClientPath() {
if (file != null) {
return file.getFilePath();
} else {
return "";
}
}
public String getServerPath() {
if (serverFile != null) {
return serverFile.getAbsolutePath();
} else {
return "";
}
}
public long getFileSize() {
if (serverFile != null) {
return serverFile.length();
} else {
return 0;
}
}
public boolean isFileTruncated() {
if (file != null) {
return file.isTruncated();
} else {
return false;
}
}
public void formSubmit(IRequestCycle cycle) {
InputStream fis = file.getStream();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(file.getFileName()));
byte[] buffer = new byte[1024];
while (true) {
int length = fis.read(buffer);
if (length &lt; 0) {
break;
}
fos.write(buffer, 0, length);
}
fis.close();
fos.close();
serverFile = new File(file.getFileName());
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
if (fis != null) {
try { fis.close(); } catch (IOException ioe) {}
}
if (fos != null) {
try { fos.close(); } catch (IOException ioe) {}
}
}
}
protected void initialize() {
file = null;
serverFile = null;
}
}
</pre>
</td>
</tr></table>
</td></tr>
<tr>
<td colspan="3"><hr></td>
</tr>
<tr>
<td align="left"><A href="TextField.html"><IMG alt=TextField src="common-images/prev.png"></a></td>
<td align="middle"><A href="index.html"><IMG alt="Component Index" src="common-images/home.png" ></a></td>
<td align="right"><A href="ValidField.html"><IMG alt=ValidField src="common-images/next.png"></a></td>
</tr>
</table>
</body>
</html>