用Java如何实现头像上传

Python0177

用Java如何实现头像上传,第1张

使用MyEclipse实现上传时,所选择的请求必须是POST请求,如下jsp:

<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 插件,将文件转换成流,然后再写出到指定的路径,将存储路径存储在数据库中。再好点的,可以将这个头像文件做一次压缩处理,原图一个路径,压缩图一个路径。压缩图路径展示小图,原图路径展示原图。一般这个路径都是基于工程的相对路径。