【Struts2】文件上传

客户端:form表单的填写:

<span style="white-space:pre">				</span><form enctype="multipart/form-data" action="FileUpdate.action" method="post">
    				<span style="white-space:pre">	</span>文件:<input type="file" name="files"><br/>
    					<span style="white-space:pre">	</span><input type="submit" value="提交">
				</form>
其中文件的enctype属性很重,许多人会遗忘。

服务器端:

public class FileUpdate {

	private File files;
	private String filesFileName;	//files为客户端的name属性值,FileName为固定值,这里可以直接获取到文件的名称
	private String filesContentType;//ContentType为固定值,可以获取上传文件的类型
	
	public String getFilesContentType() {
		return filesContentType;
	}
	public void setFilesContentType(String filesContentType) {
		this.filesContentType = filesContentType;
	}
	public File getFiles() {
		return files;
	}
	public void setFiles(File files) {
		this.files = files;
	}
	public String getFilesFileName() {
		return filesFileName;
	}
	public void setFilesFileName(String filesFileName) {
		this.filesFileName = filesFileName;
	}
	
	public String execute() throws Exception{
		//获取保存路径
		String relpath = ServletActionContext.getServletContext().getRealPath("/files");
		System.out.println(relpath);
		//新建目标文件
		File saveFile = new File(new File(relpath),filesFileName);
		if(!saveFile.getParentFile().exists()) saveFile.getParentFile().mkdir();
		//将获取到的文件复制到目标文件
		FileUtils.copyFile(files, saveFile);
		System.out.println(filesContentType);
		ActionContext.getContext().getApplication().put("msg", "上传成功!");
		return "success";
	}
}
其中容易混淆的是files,filesFileName,filesContentType,这三个属性参数的设定。这里的files是与客户端的name属性相对应的,且必须相等。

而filesFileName和filesContentType的后缀FileName,ContentType则是固定值,用于struts2自身去获取对应文件的文件名和文件类型。

struts2设定了默认最大上传文件的大小,大致是2M左右,有需要上传大文件的需求时,更改默认值:

<constant name="struts.multipart.maxSize" value="......"/>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值