我在JSP上有一个文件上传sevlet和UI。
<form method="post" action="mygeco" enctype="multipart/form-data" style="position: absolute; left: 30%; bottom: 2%;"> <input type="file" name="dataFile" id="fileChooser" /> <input type="submit" value="Upload" multiple="multiple" /> </form>
文件上传是在我的dopost方法上完成的,并且我的doget()方法还有其他代码,因此,当用户在我的jsp页面上按下上载按钮时,我希望上载在后台进行,而用户仍停留在jsp上页面并在上传完成后返回警报,我该怎么办?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub boolean isMultipart = ServletFileUpload.isMultipartContent(request); response.setContentType("text/html"); if (isMultipart) { // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); try { // Parse the request List items = upload.parseRequest(request); Iterator iterator = items.iterator(); System.out.println("starting saver"); while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); if (!item.isFormField()) { String fileName = item.getName(); String root = getServletContext().getRealPath("/"); File path = new File("/u/poolla/workspace/FirstServlet/"); if (!path.exists()) { boolean status = path.mkdirs(); } File uploadedFile = new File(path + "/" + fileName); System.out.println(uploadedFile.getAbsolutePath()); if(fileName!="") item.write(uploadedFile); else System.out.println("file not found"); System.out.println("<h1>File Uploaded Successfully....:-)</h1>"); } else { String abc = item.getString(); System.out.println("<br><br><h1>"+abc+"</h1><br><br>"); } } } catch (FileUploadException e) { System.out.println(e); } catch (Exception e) { System.out.println(e); } } else { System.out.println("Not Multipart"); } } }
您可以为此使用Ajax,
通过Ajax Call上传文件,
http://abandon.ie/notebook/simple-file-uploads-using-jquery- ajax