javaweb项目,创建tomcat图片服务器,用于保存用户上传的头像等图片信息。前期项目的新建和正常访问的调试不再说明,本文章仅讲解如何创建一个图片服务器。
1、WebContent下新建imgFile.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath();%>Insert title here //显示上传的图片文件
2、srccomservlet下,新建 UploadFile.java
package com.servlet; import java.io.IOException; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/UploadFile") @MultipartConfig public class UploadFile extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Part part = request.getPart("imgname"); //得到上传的图片对象 System.out.println(part.getSubmittedFileName()); //输出上传图片原名称 //通过UUID.randomUUID()与图片原名称拼接,使得存储的图片名称始终唯一,避免冲突 //fileName 即为最终存入数据库字段值 String fileName = UUID.randomUUID() + part.getSubmittedFileName(); System.out.println(fileName); //将图片上传到图片服务器,保存在图片服务器webappsimg文件夹中 part.write("E:\Program Files (x86)\apache-tomcat-8.5.69-files\webapps\img\" + fileName); //request携带filename,使得imgFile.jsp中src显示上传的图片 request.setAttribute("fileName", fileName); //上传成功后,跳转到imgFile.jsp request.getRequestDispatcher("./imgFile.jsp").forward(request,response); } }
3、配置tomcat图片服务器
1)解压并修改文件夹名称
解压项目服务器相同tomcat压缩包,并修改解压后文件夹名称,如apache-tomcat-8.5.69-files
2)修改端口号
为避免该图片服务器和项目服务器端口号重复,导致无法正产启动,需要修改文件服务器的端口号配置。修改apache-tomcat-8.5.69-filesconf下server.xml文件中的端口号,在原有基础上均+1即可:8005-->8006、8080-->8081、8009-->8010
3)webapps新建img文件夹,用于存放用户上传的图片
apache-tomcat-8.5.69-files的webapps下新建img文件夹,用来存放用户上传的图片
4)启动图片服务器
(1) 双击apache-tomcat-8.5.69-filesbin的startup.bat文件,启动图片服务器。项目访问期间,该图片服务器需要一直保持开启状态
(2)若双击bat文件启动失败,出现闪退现象,需要另行配置环境变量
①新建环境变量JAVA_HOME,值为jdk安装目录,如C:javajdk1.8.0_121
②新建环境变量JRE_HOME,值为jre安装目录,如C:javajdk1.8.0_121jre
4、启动javaweb项目,测试功能
图片1 用户上传图片
图片2 上传图片保存于img文件夹下
图片3 跳转至页面 imgFile.jsp,并显示上次上传的图片
5、补充
本次暂不实现从数据库获取图片名称,根据用户动态显示图片功能。如果大家有兴趣,可以先试试。基本思路是将 UUID.randomUUID() + part.getSubmittedFileName() 拼接得到的fileName存入或更新数据库对应字段,显示页面对应控件值设置为http://localhost:8081/img/fileName
6、推荐课程
JSP+Servlet+MySql+Tomcat+JDBC项目详细讲解_哔哩哔哩_bilibili
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)