我尝试使用XMLHttpRequest将文件从客户端发送到我的服务器。链接没问题,但我的文件没有发送。我只能发送他的值:c:\ fakepath \ xork.xls。所以我不能使用这个文件。我不明白为什么它不起作用。我无法更改.jsp,因为它不是我的,它集成到其他文件。 你能帮我找一下我的错误吗?
非常感谢。
Javascript :(我认为问题出在我的datafile.append中)
function extractExcel(contextPath){
var xhr = new XMLHttpRequest();
var fileInput = document.getElementById("test");
var dataFile = new FormData();
if(fileInput.files.length > 0)
{
alert(jQuery("#test")[0].files[0]);
dataFile.append('file',jQuery("#test")[0].files[0]);
}
else{
alert("Il y a rien du tout putain de merde de chien");
}
xhr.open("POST",contextPath+'/followup/addBarcodeToListEPC.do?',true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
//xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.onreadystatechange = function(){
if(xhr.readystate == 4 && xhr.status == 200)
{
alert("succes");
//location.reload();
}
else{
alert("error");
}
};
xhr.send(dataFile);
//window.location.href = contextPath+'/followup/addBarcodeToListEPC.do?';
}
的.jsp
<form id="displayFollowUpSerialNumberForm" name="displayFollowUpSerialNumberForm" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td>
<table style="margin-top: 5px; margin-right: 10px;" class="tableFilter" cellpadding="0" width="100%">
<tr>
<td colspan="2" style="color:black" align="center">
<bean:message key="rfidprod.label.EPC.title" />
</td>
</tr>
<tr >
<td width="40%"><bean:message key="rfidprod.label.EPC.left" /> : </td>
<td width="20%" class="test">
<input type="file" name="test" id="test" size="15" accept=".xls" />
</td>
</tr>
<tr align="right">
<td colspan="2">
<table>
<tr align="right">
<td>
</td>
<td class="button_generic_big" onclick="extractExcel('<%=request.getContextPath() %>')" align="left">
<bean:message key="rfidprod.label.EPC.button" />
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
</table>
</tr>
</table>
</form>
我的servlet:
protected ActionForward process(ActionMapping mapping,
HttpServletRequest request, HttpServletResponse response,
ActionForm form) throws Exception {
if (logger.isDebugEnabled()) {
LOGGER.debug("Start process Welcome");
}
//Enumeration parametre = request.getParameterNames();
//System.out.println( parametre );
System.out.println(request.getContentType());
System.out.println(request.getParameterNames());
Map<String, FileItem> foundParts = FileHelper.getMultipartContent(
request, "UTF-8", 100000);
FileItem cgv = foundParts.get("test");