处理multipart / form-data

时间:2012-11-29 04:53:39

标签: java ajax jsp file-upload

我正在使用我的jsp中的XMLHttpRequest()进行文件上传,当我在我的控制器中执行request.getContentType()时,我得到了:

multipart/form-data; boundary=---------------------------4664151417711.

此外,我没有得到如何获取文件并在我的控制器中获取它的内容。请任何人帮忙。

更新 - 我在我的jsp中这样做。

 function fileUpload() {
var url= document.getElementById("urlId").value;
 var file= document.getElementById("xslId").files[0];
 var formdata = new FormData();
 formdata.append("url", url);
 formdata.append("file", file);
 var xhr = new XMLHttpRequest();       
 xhr.open("POST","http://localhost:8080/XlsUpload/openSource.htm", true);
 xhr.send(formdata);
 xhr.onload = function(e) {
    };                    
   }   

在我的控制器中 -

 public void openSource(@ModelAttribute("domTool") DomTool   domTool,HttpServletRequest     request,HttpServletResponse response){
     String type=request.getContentType();

此外,我很惊讶如何获取上传文件的内容和文本字段的值,即我的控制器中的URL。我得到的类型是multipart / form-data

1 个答案:

答案 0 :(得分:1)

有一个名为commons-fileupload的Apache commons解决方案,用于解析多部分内容。你可以找到它here

tutorial复制的最简单示例如下所示:

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List items = upload.parseRequest(request);

    // iterate over items (i.e. list of FileItem) and access 
    // the content with getInputStream()
}