-
1
文件上传
(
1
)需要
的包:
Common-
fileUpload
组件和
Commons-
IO
组件包
(
2
)文件
标签:
“”
method=
“
post
”
enctype=
“
multipart/form-
data
”
>
//
红色为必须
:
file
name=
“”
/>
(
3
)
p>
在
Action
中,
若文件名称为
xxx
。
则必须有三个
属性:
setXxx
()
、
setXxxFileName()
、
setXxxContentType()
。
通
常
我
们
在
p>
Action
中
定
义
三
个
变
量<
/p>
:
xxx
、
xx
xFileName
、
xxxCo
ntentType
。
根据需要,
还可以定义保存文件的名
称属性
targetFileName
和保存文件的路径属性<
/p>
dir
(
4
)代码如下:
products_
文件修改如下:
<
s:form
action
=
meth
od
=
enctype
=
>
<
tr
>
<
td
height
=
><
div
align
=
>
图片
d
iv
>
td
>
<
td
height
=
colspan
=
>
<
s:file
name
=
>
< br>
s:file
>
<
div
><
img
src
=
<%=
uctrue()
%>
width
=
height
=
/><
/
div
>
td
>
tr
>
文件修改如下:
//
文件上传相关参数
private
File upload;
//
上传的文件
private
String
uploadFileName;
//
上传的文件名称
private
String
uploadContentType;
//
上传的文件类型
private
String
dir;
//
保存文件的路径
private
String
targetFileName;
//
保存文件名称
@SuppressWarnings
(
)
public
String update(){
。。。。。。。
//
上传图片
...
String
realPath=
ServletActionContext.
getRequest
< br>().getRealPath(
);
String targetDirectory=realPath;
this
.
targetFileName
=
this
.getUploadFileNa
me();
this
.setDir(targetDire
ctory+
+
this
.
targetFileName
);
System.
out
.println(
+
this
.get
Dir());
uct
rue(
this
.getDir());
< br>System.
out
.println(
+uctrue());
File
target=
new
File(targetDirect
ory,
this
.
targetFi
leName
);
try
{
FileUtils.
copyFi
le
(
upload
,
target);
用到
commons-
IO
包
}
catch
(IOException e) {
}
//
TODO
Auto-
generated catch block
tackTrace();
。。。。。。。。。
}
配置文件修改如下:
<
action
name
=
class
=
method
=<
/p>
>
<
interceptor-ref
name
=
>
<
param
name
=
>
image/bmp,
image/png,image/jpg,image/gif,applicati
on/-excel
param
>
<
param
name
=
>
200000
param
>
interceptor-
ref
>
<
interceptor-ref
name
=
/>
。。。。。
action>
2
拦截器
(
1
)作用:动态拦截
Action<
/p>
对象。也就是在执行
Action
处理用
户请求之前或之后,执行
拦截器来进行某些操作,例如判断用户身份是否合法但呢个。<
/p>
(
2
p>
)用途:文件上传和下载,国际化,转换器,和数据校验等
(
3
)理解:
OOP:
封装一个对象的属性和方法。
但对于多个对象的公共属性和行为则无能为力。
例如
日志功能。
AOP:
拦截器是
AOP
思想的体现。就是将这些公共行为封装起来
,减少重复代码等。
(4)
使用步骤
;
(a)
在
配置文件中增加拦截器定义和在
p>
Action
中声明拦截器:必须引
用默认
的拦截器
定义自定义拦截器