如何在servlet for File Upload中获取input type =“file”的文件名

时间:2013-06-20 12:37:54

标签: java jsp servlets

下面表单中的操作EdgeWarUpload是一个servlet,它是上传文件。

<form action="EdgeWarUpload" method="post"
                    enctype="multipart/form-data">
    <input type="file" name="file" size="50" />
        <br />
     <input type="submit" value="Upload File" />
 </form>

它工作正常,但在servlet post方法中,我想要上传的文件的名称。我试过

request.getParameter("file");

但这让我无效。 如何从表单中获取文件名的值。请检查。

1 个答案:

答案 0 :(得分:4)

对于Servlet 3.0 API

@MultipartConfig()添加到servlet并使用它来打印名称。

public void printNames(HttpServletRequest request){
    for(Part part : request.getParts()){
        System.out.println("PN: "+ part.getName());
        Collection<String> headers = part.getHeaders("content-disposition")
        if (headers == null)
            continue;
        for(String header : headers){
            System.out.println("CDH: " + header);                  
        } 
    }
}

对于较旧的Servlet API,我建议使用Apache Commons FileUpload