Struts 2 s:file UI tag


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.


 <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. 



<%@ taglib uri="/struts-tags" prefix="s"%>
		<title>Struts 2 s:file UI tags example</title>
		<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"/>


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 


"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 <package name="default" extends="struts-default">			
	<action name="Test" class="com.w3spoint.action.Test">
		<interceptor-ref name="defaultStack">
       		 <param name="allowedTypes">text/plain,image/jpeg</param>
		<result name="success">/welcome.jsp</result>

import com.opensymphony.xwork2.ActionSupport;
 * This class is used as an action class.
 * @author w3spoint
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;


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


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.


Content Protection by
Please Share