JAVASCRIPT - SERVLET JSP:没有参数发送。上传文件

时间:2018-03-23 12:13:11

标签: javascript jquery jsp servlets upload

我尝试使用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" />&nbsp;:&nbsp;</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");

0 个答案:

没有答案