File fullFile = new File(fileItem.getName());//获取上传文件的完整文件名 filename = Info.generalFileName(fullFile.getName());//Info.generalFileName(fullFile.getName())方法生成一个新的文件名img,用于在服务器上保存该图片文件 File newFile = new File( request.getRealPath("/upfile/") + "/" + filename);
时间: 2024-03-04 09:54:13 浏览: 64
这段代码是用于获取上传文件的完整文件名,并生成在服务器上保存该文件的新文件名。首先,使用fileItem.getName()方法获取上传文件的完整文件名。然后,将获取到的完整文件名作为参数传递给Info.generalFileName()方法,该方法会生成一个新的文件名img,用于在服务器上保存该图片文件。最后,使用request.getRealPath("/upfile/")方法获取服务器上保存文件的路径,拼接上生成的新文件名filename,得到一个新的File对象newFile,用于保存上传文件。
相关问题
if (FileUpload.isMultipartContent(requestContext)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File(request .getRealPath("/upfile/") + "/")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(100 * 1024 * 1024); List items = new ArrayList(); items = upload.parseRequest(request); title = ((FileItem) items.get(0)).getString(); title = Info.getUTFStr(title); note = ((FileItem) items.get(2)).getString(); note = Info.getUTFStr(note); FileItem fileItem = (FileItem) items.get(1); if (fileItem.getName() != null && fileItem.getSize() != 0) { if (fileItem.getName() != null && fileItem.getSize() != 0) { File fullFile = new File(fileItem.getName()); img = Info.generalFileName(fullFile.getName()); File newFile = new File( request.getRealPath("/upfile/") + "/" + img); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } } else { } } }
这段代码用于处理 HTTP POST 请求中的文件上传。首先通过判断请求是否为 multipart/form-data 类型来确定是否需要进行文件上传处理。如果是文件上传请求,就创建一个 DiskFileItemFactory 对象,并设置上传文件的存储路径。然后创建一个 ServletFileUpload 对象,并设置上传文件的大小限制。接着调用 ServletFileUpload 对象的 parseRequest() 方法解析请求,并将解析结果存储到 items 变量中。在解析结果中,第一个元素表示上传的标题,第二个元素表示上传的图片文件,第三个元素表示上传的内容。通过调用 getString() 方法获取标题和内容的字符串值,并通过 Info.getUTFStr() 方法将其转换为 UTF-8 编码的字符串。最后,通过获取图片文件的 FileItem 对象并调用 write() 方法将其写入到指定路径中,完成文件上传操作。
// 新增图片 if (ac.equals("imgadvaddold")) { try { String img = ""; String imgtype = ""; request.setCharacterEncoding("utf-8"); RequestContext requestContext = new ServletRequestContext( request); if (FileUpload.isMultipartContent(requestContext)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File(request .getRealPath("/upfile/") + "/")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(100 * 1024 * 1024); List items = new ArrayList(); items = upload.parseRequest(request); imgtype = ((FileItem) items.get(1)).getString(); imgtype = Info.getUTFStr(imgtype); FileItem fileItem = (FileItem) items.get(0); if (fileItem.getName() != null && fileItem.getSize() != 0) { if (fileItem.getName() != null && fileItem.getSize() != 0) { File fullFile = new File(fileItem.getName()); img = Info.generalFileName(fullFile.getName()); File newFile = new File( request.getRealPath("/upfile/") + "/" + img); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } } else { } } } String cksql = "select * from imgadv where imgtype='banner'"; ArrayList cklist = (ArrayList) dao.select(cksql); if (imgtype.equals("banner") && cklist.size() != 0) { request.setAttribute("no", ""); go("/admin/imgadvadd.jsp", request, response); } else { String sql = "insert into imgadv (filename,imgtype) " + "values('" + img + "','" + imgtype + "')"; dao.commOper(sql); request.setAttribute("suc", ""); go("/admin/imgadvadd.jsp", request, response); } } catch (Exception e1) { e1.printStackTrace(); request.setAttribute("no", ""); request.getRequestDispatcher("/admin/imgadvadd.jsp").forward( request, response); } }
这是一个Java Servlet中的一段代码,用于处理上传图片的逻辑,包括获取上传的文件、文件类型,保存到指定目录,并将文件信息插入到数据库中。其中使用了Apache Commons FileUpload库来处理文件上传。在上传图片之前,会先检查数据库中是否已经存在同类型的图片,如果存在则不允许上传。
阅读全文