利用图片服务器访问图片(图片服务器我用的tomcat 和上传图片那个链接一块看最好)

打开img-tomcat
在tomcat下webapp下面的ROOT里面创建该工程的文件夹 将该项目里面所上传的文件全部加载到这个文件夹中

@WebServlet("/updateUserInfo.action")
public class updateUserInfo extends HttpServlet{

	private SysUserServise ss = new SysUserServise();
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		DiskFileItemFactory  dfif = new DiskFileItemFactory ();
		dfif.setRepository(new File("I://temp"));
		dfif.setDefaultCharset("utf-8");

		/*
		 * 图片网址
		 * http://localhost:8080/hotel/5836c82c-b4ba-482e-b304-a82eee37d9fd.png
		 */
		
		
		ServletFileUpload sfu = new ServletFileUpload(dfif);
		SysUserInfo su = (SysUserInfo) request.getSession().getAttribute(Constance.SYS_USER);
		//解析请求
		//try
		List iL;
		try {
			iL = sfu.parseRequest(request);
			for(FileItem item :iL){
				//	item.getContentType();//上传文件的类型   当为输入框这为空
					//item.getFieldName(); //框里面 name属性对应的名称
					//item.getName();//表示上传文件名称	当为输入框这为空
				   //item.getString();//文本内容
				   //item.isFormField();//是否是文本输入框
				   
					//文件名     接收文件的情况下
					if(item.isFormField()) {
						if("realName".equals(item.getFieldName())) {
							su.setRealName(item.getString());
						}
						if("email".equals(item.getFieldName())) {
							su.setEmail(item.getString());
						}
						if("phone".equals(item.getFieldName())) {
							su.setPhone(item.getString());
						}
						
						
						
					}else {
						InputStream is = item.getInputStream();
						
						String filePath = "I:\\img-Tomcat\\apache-tomcat-8.5.33\\webapps\\ROOT\\hotel\\";
						//uuid是随机生成的类似于ipv6
						String fileName =  UUID.randomUUID().toString() + "." + FilenameUtils.getExtension(item.getName());
						
						su.setAvatar("hotel/" + fileName);
						//将这个图片传到tomcat服务器里面去
						//在读取图片的时候地址需要加好!!!!!!
						FileUtils.copyInputStreamToFile(is, new File(filePath + fileName));
						is.close();
					}
					
				}
			
			ss.updateUserInfo(su);
			
			
			
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		 
		response.sendRedirect("views/user/updateUserInfo.jsp");
		
	}
	
}

在获取图片的时候就可以直接聪tomcat里面获取
比如我的tomcat的端口号为8080

public static final String IMG_SERVER_HOST = "http://localhost:8080/";

在jsp页面 中
//public static final String SYS_USER = "sysuser";  这个是在登录的时候存在 session里面的对象
用户头像

上传图片csdn 地址
https://blog.csdn.net/qq_15740137/article/details/102573682

你可能感兴趣的:(javaWeb)