我在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。我要作为多部分/表单数据的类型

最佳答案

有一个称为commons-fileupload的Apache公共解决方案,用于解析多部分内容。您可以找到它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()
}

关于java - 处理多部分/表单数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13619071/

10-08 21:09