文件上傳FileUpload

kookob 13年前發布 | 4K 次閱讀 LinkedIn 版本控制軟件 資訊

web.xml

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

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee

<display-name>customization</display-name>

<filter>
    <filter-name>struts-cleanup</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ActionContextCleanUp
    </filter-class>
</filter>  

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
</filter>

<filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app> </pre>struts.xml

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

<package name="ob" namespace="/" extends="struts-default">
    <action name="showUpload">
        <result>/upload.jsp</result>
    </action>

    <action name="doUpload" class="com.sterning.StrutsFileUpload">
        <result name="input">/upload.jsp</result>
        <result>/upload_success.jsp</result>
    </action>
</package>

</constant> </constant></struts></pre>
StrutsFileUpload.java

package com.sterning;

import java.io.File; import javax.servlet.ServletContext; import org.apache.commons.io.FileUtils; import org.apache.struts2.util.ServletContextAware; import com.opensymphony.xwork2.ActionSupport;

public class StrutsFileUpload extends ActionSupport implements ServletContextAware {

private File upload;// 實際上傳文件
private String uploadContentType; // 文件的內容類型(頁面的文件名+ContentType)
private String uploadFileName; // 上傳文件名(頁面的文件名+FileName)
private String fileCaption;// 上傳文件時的備注
private ServletContext context;

public String execute() throws Exception {
    try {
        String targetDirectory = context.getRealPath("/upload");
        String targetFileName = uploadFileName;
        File target = new File(targetDirectory, targetFileName);
        FileUtils.copyFile(upload, target);

        setUploadFileName(target.getPath());// 保存文件的存放路徑
    } catch (Exception e) {
        addActionError(e.getMessage());
        return INPUT;
    }
    return SUCCESS;
}

public String getFileCaption() {
    return fileCaption;
}

public void setFileCaption(String fileCaption) {
    this.fileCaption = fileCaption;
}

public File getUpload() {
    return upload;
}

public void setUpload(File upload) {
    this.upload = upload;
}

public String getUploadContentType() {
    return uploadContentType;
}

public void setUploadContentType(String uploadContentType) {
    this.uploadContentType = uploadContentType;
}

public String getUploadFileName() {
    return uploadFileName;
}

public void setUploadFileName(String uploadFileName) {
    this.uploadFileName = uploadFileName;
}

public void setServletContext(ServletContext context) {
    this.context = context;
}

} </pre>
upload.jsp

<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

    <title>文件上傳示例</title>
    <link href="%3Cs:url%20value=" css="" main.css="">" rel="stylesheet" type="text/css" />

    <s:actionerror>
    <s:fielderror>
    <s:form action="doUpload" method="post" enctype="multipart/form-data">


                <h1>
                    文件上傳示例
                </h1>


        <s:file name="upload" label="上傳的文件">
        <s:textfield name="fileCaption" label="備注">
        <s:submit value="上   傳" align="center">
    </s:submit>
</s:textfield></s:file></s:form></s:fielderror></s:actionerror></pre><br><br>upload_success.jsp<br><pre name="code" class="html" style="background-color:#C5C5C5;font-weight:bold;"><%@ page language="java" contentType="text/html; charset=GB2312"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

    <title>上傳成功</title>
    <link href="%3Cs:url%20value=" css="" main.css="">" rel="stylesheet" type="text/css" />

    <table class="wwFormTable">
        <tbody><tr>
            <td colspan="2">
                <h1>
                    上傳成功
                </h1>
            </td>
        </tr>
        <tr>
            <td class="tdLabel">
                <label for="doUpload_upload" class="label">
                    內容類型:
                </label>
            </td>
            <td>
                <s:property value="uploadContentType">
            </s:property><br></td>
        </tr>

        <tr>
            <td class="tdLabel">
                <label for="doUpload_upload" class="label">
                    文件路徑:
                </label>
            </td>
            <td>
                <s:property value="uploadFileName">
            </s:property><br></td>
        </tr>
        <tr>
            <td class="tdLabel">
                <label for="doUpload_upload" class="label">
                    臨時文件:
                </label>
            </td>
            <td>
                <s:property value="upload">
            </s:property><br></td>
        </tr>
        <tr>
            <td class="tdLabel">
                <label for="doUpload_upload" class="label">
                    備注:
                </label>
            </td>
            <td>
                <s:property value="fileCaption">
            </s:property><br></td>
        </tr>
    </tbody></table>
    <%-- 展示圖像(路徑未指定)
    <div style="padding:3px; border: solid 1px #cccccc; text-align: center;">
        <img src="">
        <br>
    </div>
     --%>
</pre><br>需要用到的包:<br>commons-fileupload-1.2.1.jar<br>commons-io-1.3.2.jar<br>commons-logging-1.1.1.jar<br>freemarker-2.3.12.jar<br>ognl-2.6.11.jar<br>struts2-core-2.1.2.jar<br>xwork-2.1.1.jar<br>
 本文由用戶 kookob 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!