JavaWeb-文件上传与下载

一:文件上传

 

1:JSP页面

 

2:Struts2->Action

 

3: Struts.xml文件

 

 

从上面的步骤我们可以总结出:

Java Web上传文件的核心步骤

①:客户端上传文件、发送请求到Servlet或者(控制器)

②:服务器端:以I/O流的形式将上传的文件写到服务器的文件夹中

 

博主的是基于Struts2(c)实现文件上传下载的

 

我们对上面的代码进行优化

 

路径优化主要在于:磁盘路径+文件夹路径+不重名设置

I/O操作:使用第三方jar包

文件管理:每个用户的上传路径

 

优化(重构)

1). 添加属性(获取文件名称) //flagContentType互联网mime名称

 

 

2). IO优化:common-io第三方组件org.apache.commons.io下FileUtils,copyFile替换手写流

 

 

 

3). 路径优化:

a. 获得文件夹的真实路径

 

b.动态获得文件夹路径

 

 

 

 

4). 文件名优化:将当前系统时间连接在文件名称中。(防止文件重名)

 

5). 文件大小:

 

注意:Struts2的文件上传大小有默认限制"struts.multipart.maxSize",不可修改struts的原生配置文件。

在Struts.xml文件中配置常量:

 

 

 

用户文件夹管理:用户注册时,创建文件以ID为区分。

 

用户上传也以此路径访问。

 

用户上传文件的路径有必要存入数据库,以方便查找用户上传了哪些东西,也方便用户下载。


源代码:  别忘了给实例属性提供get/set方法


	private File flag;
	private String flagFileName;
	private String dicectoryName;

	public  String fileUp() throws Exception{
		ServletContext ctx=ServletActionContext.getServletContext();
		String path=ctx.getRealPath(dicectoryName)+"/"+System.currentTimeMillis()+flagFileName;
		File file=new File(path);
		FileUtils.copyFile(flag, file);		
		return null;
	}

struts.xml
<package name="file" extends="struts-default" >
		<action name="fileUp" class="action.FileUpLoadAction" method="fileUp">	
			<param name="dicectoryName">/upLoad</param>		
		</action>
	</package>


二:文件下载

 

Action

 

文件配置

 

完成配置文件 //查看org.apache.struts2.dispatcher.StreamResult

 


猜你喜欢

转载自blog.csdn.net/sugar_map/article/details/80242401