Struts2图片上传功能实现
Struts2 的图片上传功能,算是 Java Web 开发里比较常见的需求了。用 Struts2 来搞图片上传,配置灵活,流程也清晰,写起来还挺顺手的。你只需要在struts.xml
里定义好Action
,在Action
类里接收文件,上传逻辑就行,流程清晰,扩展也方便。
Action 类里通常会有像File image
、String imageFileName
这些属性,用来接收前端传过来的文件内容和文件名。Struts2 会自动把表单上传的内容绑定到这些属性,挺省事的。执行方法里判断下文件是否存在,验证下类型、大小,保存到你设定的服务器路径就搞定。
比如:
public class ImageUploadAction extends ActionSupport {
private File image;
private String imageContentType;
private String imageFileName;
@Override
public String execute() throws Exception {
if (image != null) {
// 做一些验证
String savePath = "/path/to/save/images/" + imageFileName;
FileUtils.copyFile(image, new File(savePath));
return SUCCESS;
} else {
return INPUT;
}
}
// getter 和 setter 省略
}
前端页面只要用一个普通的上传表单就可以:
<form action="upload.action" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" value="上传" />
</form>
注意点也有几个:比如文件大小限制、类型验证、异常这些都要加上,别被用户随便传点奇奇怪怪的文件上来。想提升体验,可以考虑加个AJAX异步上传,用 jQuery 写也不麻烦,响应快、页面不卡顿。
你如果对Struts2的上传机制还不熟,可以顺便看看这篇:Struts2 Uploadify 图片上传,讲得比较清楚,适合配合着看。
,Struts2 搞上传是比较成熟的一套玩法,如果你项目用的是这个框架,那就放心地用上,省心不少。
评论区