Tomcat图片服务器
1.创建图片服务器。
将tomcat复制一份解压。解压后的文件夹名字后加上 -file 此时,该文件夹下的tomcat为图片服务器。
2.创建图片储存目录。
打开图片服务器根目录\webapps\(新建文件夹用于存放图片,可以项目名+img命名,也可以项目名\图片名)
3.更改Tomcat端口号。
因为图片服务器端口号与服务器一致,所以要更改。打开图片服务器根目录\conf\server.xml,找到8005、8080、8009这三个端口号,分别+1,即改为8006、8081、8010。
4.启动图片服务器。
打开图片服务器根目录\bin\startup.bat,出现启动毫秒数即为成功。
如果闪退,
在环境变量中选择jdk安装目录 新建 JRE_HOME 选择jre安装目录即可。
也有可能是jdk有问题,可以重装jdk解决。
或者复制一份其他正常的tomcat的server.xml文件,按照步骤三更改端口号后替换原文件。
5.在jsp页面中编写用于上传图片的表单
<form enctype="multipart/form-data" method="必须为post" action="用于处理图片的servlet路径">
//这个标签用于生成,供用户选择上传图片的对话框
<input type="file" name="自定义的标签名称">
//提交表单
<input type="submit" value="提交">
</form>
6.创建一个servlet用于接收图片。
@WebServlet("/NewFileUpload")
//除了常规的servlet写法之外,还需要在servlet中添加@MultipartConfig注解。
@MultipartConfig
public class NewFileUpload extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取当前的图片对象。
Part part = req.getPart("表单中自定义的标签名称");
/*
因为我们要将图片的名称存放到数据库中,所以要给图片设置唯一的不重复的名称,用来区分不同的图片。
UUID.randomUUID().toString可以生成一个唯一的不重复的随机字符串。
part.getSubmittedFileName()可以获取到上传的图片的文件名,格式为:文件名.图片格式。
将这两个字符串拼接到一起,可以得到一个唯一的不重复的图片名称。
实现方式不唯一,合理即可。
*/
String fileName = UUID.randomUUID().toString() + part.getSubmittedFileName();
//将图片上传至服务器,注意:\\不可省略
part.write("第2步自定义的文件储存目录的完整根目录\\" + fileName);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}