2016-01-14 37 views
-1

获得Java Servlet的完整的文件路径我怎样才能将文件从HTML中的servlet上传完整路径上传它。当我正在打印的文件名上传它刚刚起步的名字不是完整的路径。我不知道如何得到它。我收到这个错误。如何从文件上传与HTML

fileField!!!!!!!! Browse 
fileName!!!!!!!! fromJSON.csv 

Jan 14, 2016 7:31:51 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [PriorityServlet] in context with path[/tc-eqcweb] threw exception 
java.io.FileNotFoundException: fromJSON.csv (The system cannot find the file specified) 
at java.io.FileInputStream.open0(Native Method) 
at java.io.FileInputStream.open(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at com.mongodb.gridfs.GridFS.createFile(GridFS.java:239) 
at com.eqc.servlet.PriorityServlet.doPost(PriorityServlet.java:107) 

我的HTML表单上传的文件

<form action="priorityServlet" method="post" enctype="multipart/form-data"> 
      <div class="col-sm-8 policytxt_align"> 
       <div class="file_1_mas"> 
        <a class='btn btn-primary' href='javascript:;'> 
         <input id="file_bal" name="Browse" type="file" value="Browse" /> 
        </a> &nbsp; <br /> 
        <div><input type="submit" value="Upload File" onClick="getExclusion();" /> </div> 

        <div align="center"></div> 
            <div></div> 

           </div> 

我的servlet没有得到文件的完整路径上传:

public void doPost(HttpServletRequest req, HttpServletResponse res) 
     throws IOException, ServletException { 
isMultipart = ServletFileUpload.isMultipartContent(req); 
    java.io.PrintWriter out = res.getWriter(); 
    DiskFileItemFactory factory = new DiskFileItemFactory(); 
    factory.setSizeThreshold(maxMemSize); 
    factory.setRepository(new File("D:\\temp111")); 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    upload.setSizeMax(maxFileSize); 
    String fileName = null; 
    String fieldName = null; 
    String rawName = null; 
    try { 

     List fileItems = upload.parseRequest(req); 
     Iterator i = fileItems.iterator(); 
     while (i.hasNext()) { 
      FileItem fi = (FileItem) i.next(); 
      if (!fi.isFormField()) { 
       // Get the uploaded file parameters 
       fieldName = fi.getFieldName(); 
       fileName = fi.getName(); 

      } 
     } 
     System.out.println("fileField!!!!!!!! "+fieldName); 
     System.out.println("fileName!!!!!!!! "+fileName); 
    } catch (Exception ex) { 
     System.out.println(ex); 
    } 

回答

0

出于安全原因,浏览器不会告诉你上传的文件的path。该文件的内容是在request - 使用getPart

看到http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html

+0

>我得到空时,我使用getPart“。 final Part filePart = req.getPart(“Browse”); 的System.out.println( “FilePart是” + filePart); “ –