struts文件上傳,獲取文件名和文件類型

Action中還有兩個屬性:uploadFileName和uploadContentType,這兩個屬性分別用於封裝上傳文件的文件名、 文件類型。這是Struts2設計的獨到之處:Strut2的Action類直接經過File類型屬性直接封裝了上傳文件的文件內容,但這個File屬性 沒法獲取上傳文件的文件名和文件類型,因此Struts2就直接將文件域中包含的上傳文件名和文件類型的信息封裝到uploadFileName和 uploadContentType屬性中,也就是說Struts2針對表單中名爲xxx的文件域,在對應的Action類中使用3個屬性來封裝該文件域 信息:
l 類型爲File的xxx屬性:用來封裝頁面文件域對應的文件內容。
l 類型爲String的xxxFileName屬性:用來封裝該文件域對應的文件的文件名。
l 類型爲String的xxxContentType屬性:用來封裝該文件域應用的文件的文件類型。

如下是實際java代碼:

jsp頁面:

<input type="file" id="upload" name="upload"/>  這個name就是與Action的屬性對應

Action類代碼:

    private File upload;
    private String uploadFileName;
    private String uploadContentType;

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

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

設置3個屬性。分別給set方法. 這樣子,就可以獲取上傳的文件,文件名,文件類型。

注意:這個uploadFileName,uploadContentType。若是File 屬性名xxx(private File xxx;) 。那這個必須是xxxFileName, xxxContentType。而後也是分別給set 方法就能夠。 java

jsp代碼 jsp


    <s:form action="mperson_upLoadImage.action"  method="post" enctype="multipart/form-data">

        <input type="file" name="photo" />
        <s:submit />

    </s:form> post



特 別注意:,<s:file/>標誌不單單是綁定到upload,還有uploadContentType(上傳文件的MIME類型)和 uploadFileName(上傳文件的文件名,該文件名不包括文件的路徑)。所以,<s:file name="xxx" />對應Action類裏面的xxx、xxxContentType和xxxFileName三個屬性。
相關文章
相關標籤/搜索