【发布时间】:2012-11-17 03:07:50
【问题描述】:
我在我的 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
【问题讨论】:
-
考虑添加更多信息。通过添加代码 sn-p,您可以让人们知道您的代码做了什么。在目前的形式下,很难猜出哪里出了问题。
-
仅通过查看标签,我可以想象您正在尝试使用 ajax 请求上传文件。出于安全原因,您不能在 ajax 请求中执行此操作,最好使用已经处理 ajax 交互的组件,例如 blueImp jquery file upload(它使用 iframe 来处理 ajax 请求 )。
-
@LuiggiMendoza HTML5 已经支持这一点。虽然,它不会在所有浏览器中都可用。
-
@Ck- 这就是我在链接中发布的库的工作:利用与支持(或不支持)ajax 文件上传的浏览器的交互,并为程序员的工作提供便利。
-
@LuiggiMendoza 啊好的,我现在明白了。我知道 blueImp。乍一看你之前的评论,我认为你的意思是我们不能用普通的 JavaScript 来做到这一点。
标签: java ajax jsp file-upload