jsp
<form name="frm "action="${pageContext.request.contextPath}/openapi/artist/add.omp" method="post" enctype="multipart/form-data">
    <input type="text" name="test"><br>
    <input type="file" name="img"><br>
    <input type="submit">
</form>

action
public class ArtistAction extends BaseAction {

    /**
     *
     */
    private static final long serialVersionUID = 384851516132095345L;
    private final static Logger log = Logger.getLogger(ArtistAction.class);

    private File img;            // 업로드할 실제 파일
    private String imgFileName;    // 업로드할 파일명, 규칙 : (파일input태그 name) + FileName

    public String add() {
        HttpServletRequest request = getRequest();

        log.debug(request.getParameter("test"));
        log.debug("FileName = " + imgFileName);
        log.debug("FileSize = " + img.length());

        return SUCCESS;
    }

    public File getImg() {
        return img;
    }

    public void setImg(File img) {
        this.img = img;
    }

    public String getImgFileName() {
        return imgFileName;
    }

    public void setImgFileName(String imgFileName) {
        this.imgFileName = imgFileName;
    }
}

interceptor에 <interceptor-ref name="fileUpload"/> 설정되어 있고, <input type="file" name='img"> 태그의 name만 aciton의 멤버변수명과 일치시켜 주면 간단하게 파일을 받을 수 있다.

꼭 <s:file> 태그를 쓰지 않아도 상관없다.