1.为了记录用户的头像地址,可以使用数据库保存用户的头像地址,命名规则为用户名+后缀名,此处用户名为唯一。这里就不写具体代码的实现了。
2.为图片增加过滤
为了避免图片占据过多的服务器空间,需要在上传时限制图片的尺寸和大小,以及类型。
为了简单,这里利用struts2 拦截器实现文件过滤
2.1action配置文件
在action配置文件中增加fileUpload和defaultStack拦截器,而且fileUpload拦截器必须配置在defaultStack拦截器栈之前。在fileUpload拦截器中配置允许图片的大小和类型
<action name="uploadPro" class="com.b2d2.account.action.UploadAction">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/png,image/gif,image/jpeg</param>
<param name="maximumSize">500000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">upload</param>
<result name="success">/Views/account/profile.jsp</result>
<result name="input">/Views/account/upload.jsp</result>
</action>
2.2JSP文件
在JSP文件中增加<s:fielderror>标签,显式输出上传失败的校验提示。
<s:form action="uploadPro" enctype="multipart/form-data" theme="simple">
<s:file name="upload"></s:file><br/>
<s:fielderror></s:fielderror>
<s:submit value="上传"></s:submit>
</s:form>