Struts2_16_Struts2 文件上传和下载

Struts2 文件上传基于 Struts2 拦截器实现;

Struts2 文件上传使用的是 fileupload 组件;

Form 配置 enctype="multipart/form-data";

Struts2 获取上传文件:name (name 是文件表单的 name) Struts2 获取上传文件名:name+FileName;

                                      Struts2 获取上传文件的类型:name+ContentType;
 

 文件上传

fileUpload.jsp:

<form action="upload" method="post"  enctype="multipart/form-data">
	<input type="file" name="file1"/>
	<input type="submit" value="上传"/>
</form>

struts.xml:

<struts>
	<package name="hello" extends="struts-default" >
		<action name="upload" class="com.java.action.FileUploadAction">
			<result name="success">/success.jsp</result>
		</action>
	</package>
</struts>

FileUploadAction:

	public File getFile1() {
		return file1;
	}
	public void setFile1(File file1) {
		this.file1 = file1;
	}
	
	public String getFile1FileName() {
		return File1FileName;
	}
	public void setFile1FileName(String File1FileName) {
		this.File1FileName = File1FileName;
	}
	public String getFile1ContentType() {
		return file1ContentType;
	}
	public void setFile1ContentType(String file1ContentType) {
		this.file1ContentType = file1ContentType;
	}

	private File file1;//文件
	private String File1FileName;//文件名
	private String file1ContentType;//文件类型
	@Override
	public String execute() throws Exception {
		System.out.println("文件名:"+File1FileName);
		System.out.println("文件类型:"+file1ContentType);
		String filePath = "c:/upload/"+File1FileName;
		File saveFile = new File(filePath);
		FileUtils.copyFile(file1, saveFile);
		return SUCCESS;
	}

测试:


配置文件的大小及类型

<paramname="allowedTypes">image/bmp,image/x-png,image/gif,image/jpg,image/jpeg</param> <paramname="maximumSize">81101</param>
<s:fielderror></s:fielderror>
 

通过重写拦截器:fileUpload

<paramname="allowedTypes">image/bmp,image/x-png,image/gif,image/jpg,image/jpeg</param> <paramname="maximumSize">81101</param>

重写了,要把默认的加上。

如果被拦截,底层会返回input,

用<s:fielderror></s:fielderror>打印错误信息。

<struts>
	<package name="hello" extends="struts-default" >

		<action name="upload" class="com.java.action.FileUploadAction">
			<result name="success">/success.jsp</result>
			<result name="input">/fileUpload.jsp</result>
			<interceptor-ref name="fileUpload">
				<param name="allowedTypes">text/plain</param>
				<param name="maximumSize">2048</param>
			</interceptor-ref>
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</action>
	</package>
</struts>

大文件上传

Struts2 文件上传大小默认是 2M;

大文件上传,添加以下这个属性:
<constantname="struts.multipart.maxSize"value="最大容量,单位k"></constant>
 

<struts>

	<constant name="struts.multipart.maxSize" value="1024000"></constant>
	<package name="hello" extends="struts-default" >

		<action name="upload" class="com.java.action.FileUploadAction">
			<result name="success">/success.jsp</result>
			<result name="input">/fileUpload.jsp</result>
			<interceptor-ref name="fileUpload">
				<param name="allowedTypes">text/plain</param>
				<param name="maximumSize">2048</param>
			</interceptor-ref>
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</action>
	</package>
</struts>

猜你喜欢

转载自blog.csdn.net/qq_27163329/article/details/81612978
今日推荐