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

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

l 類型爲File的xxx屬性:用來封裝頁面文件域對應的文件內容。jsp

l 類型爲String的xxxFileName屬性:用來封裝該文件域對應的文件的文件名。this

l 類型爲String的xxxContentType屬性:用來封裝該文件域應用的文件的文件類型。設計

 

如下是實際java代碼:code

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

Action類代碼:io

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 方法就能夠。file

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

相關文章
相關標籤/搜索