Struts 2 s:file UI tag

<s:file>:

The <s:file> tag is used to create a HTML file upload component to browse and select a file from your machine and upload it to the server.

Syntax: <s:file name=”fileName” label=”fieldLabel”/>

Note: The FileUploadInterceptor is responsible for the whole functionality of s:file. It intercepts the user request with “multipart/form-data” enctype and automatically saves the selected file into the temp directory of the server. Uploaded file details like name and content type are auto injected by FileUploadInterceptor using set”XXX”FileName() and set”XXX”ContentType() methods. Set enctype of the form to “multipart/form-data”. It also provides the functionality to set the maximum size, filt type etc. 

Example:

test.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
		<title>Struts 2 s:file UI tags example</title>
	</head>
	<body>
		<h3>This is a s:file UI tags example.</h3>
 
		<s:form action="Test" 
                   enctype="multipart/form-data" method="POST">
			<s:file name="selectedDoc" label="Select file" />
			<s:submit value="Submit" align="center"/>
		</s:form>
 
	</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 
 	<filter>
	  <filter-name>struts2</filter-name>
	  <filter-class>
        	org.apache.struts2.dispatcher.ng.
        	filter.StrutsPrepareAndExecuteFilter
          </filter-class>
	</filter>
 
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
 
	<welcome-file-list>
	  <welcome-file>test.jsp</welcome-file>
	</welcome-file-list>
 
</web-app>

struts.xml

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
 
 <package name="default" extends="struts-default">			
	<action name="Test" class="com.javawithease.action.Test">
		<interceptor-ref name="defaultStack">
       		 <param name="allowedTypes">text/plain,image/jpeg</param>
  	   	</interceptor-ref> 
		<result name="success">/welcome.jsp</result>
		</action>
	</package>
 
</struts>

Test.java

import java.io.File;
import com.opensymphony.xwork2.ActionSupport;
 
/**
 * This class is used as an action class.
 * @author javawithease
 */
public class Test extends ActionSupport{
  //data members
  private File selectedDoc;
  private String selectedDocContentType;
  private String selectedDocFileName;
 
  //business logic
  public String execute(){
  	return SUCCESS;	
  }
 
  //getter setters
  public File getSelectedDoc() {
	return selectedDoc;
  }
 
  public void setSelectedDoc(File selectedDoc) {
 	this.selectedDoc = selectedDoc;
  }
 
  public String getSelectedDocContentType() {
	return selectedDocContentType;
  }
 
  public void setSelectedDocContentType(String selectedDocContentType) {
	this.selectedDocContentType = selectedDocContentType;
  }
 
  public String getSelectedDocFileName() {
	return selectedDocFileName;
  }
 
  public void setSelectedDocFileName(String selectedDocFileName) {
	this.selectedDocFileName = selectedDocFileName;
  }			
}

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
	<head>
		<title>Struts 2 s:file UI tags example</title>
	</head>
	<body>
		<h3>This is a s:file UI tags example.</h3>
 
		File Name: <s:property value="selectedDocFileName" /><br/>
		File Content Type: <s:property value="selectedDocContentType"/>
                <br/>
		File: <s:property value="selectedDoc" />
 
	</body>
</html>

Output:

struts 35 first
 
Select file.
struts 35 second
 
Click on Submit button.
struts 35 final
 
Download this example.
 
Next Topic: Struts 2 s:doubleselect UI tag with example.
Previous Topic: Struts 2 s:combobox UI tag with example.

Related Topics:

Struts 2 s:textfield, s:password and s:submit UI tags with example.
Struts 2 s:hidden UI tag with example.
Struts 2 s:textarea UI tag with example.
Struts s:radio 2 UI tag with example.
Struts 2 s:checkbox and s:checkboxlist UI tag with example.
Struts 2 s:select UI tag with example.
Struts 2 s:combobox UI tag with example.
Struts 2 s:file UI tag with example.
Struts 2 s:doubleselect UI tag with example.
Struts 2 s:updownselect UI tag with example.
Struts 2 s:optiontransferselect UI tag with example.
Struts 2 s:datetimepicker UI tag with example.
Struts 2 sx:autocompleter UI tag with example.