<body>
<h3 align="left">
上传头像
</h3>
<br>
<form action="UploadServlet" method="post"
enctype="multipart/form-data">
姓名:
<input type="text" name="username">
<br>
头像:
<input type="file" name="photo">
<br>
<input type="submit" value="上传">
</form>
</body>
其次是需要添加上传的jar包commons-fileupload-1.3.1.jar、commons-io-2.4.jar
最后需要在Servlet中进行逻辑处理:
// 1、创建FileUpload对象
// (1)创建工厂
FileItemFactory factory = new DiskFileItemFactory()
// (2)创建FileUpload对象
ServletFileUpload upload = new ServletFileUpload(factory)
// (3)把请求中的所有数据转换成FileItem对象
try {
List<FileItem>list = upload.parseRequest(request)
// (4)判断是文件域还是表单域,如果是表单域,则返回true
for (int i = 0i <list.size()i++) {
if (list.get(i).isFormField()) {
// (5)获取input标签中name属性的值
if (list.get(i).getFieldName().equals("username")) {
// 输出提取到的具体的值
System.out.println("用户姓名为:"
+ list.get(i).getString("utf-8"))
}
} else {
// 输出上传的路径
System.out.println("upload的路径:"
+ getServletContext().getRealPath("upload"))
// 获取到上传的文件的名字
File file = new File(getServletContext().getRealPath(
"upload"),
list.get(i)
.getName()
.substring(
list.get(i).getName()
.lastIndexOf("\\") + 1))
list.get(i).write(file)
}
}
其实就是上传文件,方便点的下载个fileupload 插件,将文件转换成流,然后再写出到指定的路径,将存储路径存储在数据库中。再好点的,可以将这个头像文件做一次压缩处理,原图一个路径,压缩图一个路径。压缩图路径展示小图,原图路径展示原图。一般这个路径都是基于工程的相对路径。