上传文件后我该怎么办或回叫后端

时间:2019-01-03 02:23:39

标签: html ajax portlet

我正在尝试允许用户上传他们的excel文件,之后该后端会将其转换为html格式,并假设将其放在iframe src中,以允许用户在浏览器中预览。

现在,我正在尝试调用get path函数,以在页面准备就绪时设置iframe src,但似乎无法正常工作。

    <portlet:actionURL var="checkworkbook" name="checkWorkbook"></portlet:actionURL>
    <b>Please Upload a Document</b> 

     <form name ="UploadExcelForm" action="<%=checkworkbook%>" method="post" enctype="multipart/form-data">
    <input type="file" id="uploadedFile" name="uploadedFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel">
    <button type="button" onclick="<portlet:namespace />uploadExcel()"> submit </button>
    </form>

    <div id="displayArea">
    <iframe id="displayExcel" src="" weight=800 height=400>Please Upload a file</iframe>
    </div>

这里是ajax部分

 function <portlet:namespace />uploadExcel() {
        if ($('#uploadedFile').val() == null) {
            alert("Please choose a file!");
            return false;
        }else{
        document.UploadExcelForm.submit();
    }
        }

    $(document).ready(function(){
                   <portlet:namespace />getDisplayPath();
        });



function <portlet:namespace />getDisplayPath() {
    var url = '<%=urlForAjax%>';
       /*Make ajax call*/
        $.ajax({
        type : "POST",
        url : url,
        data: {
            portletAction : "getDisplayPath"
            },
        success : function(data)
        {   
            var obj = jQuery.parseJSON(data);
            if(obj.jsonPath !=null){
                var json = JSON.parse(obj.jsonPath);
                $("#displayExcel").attr('src',obj.jsonPath);


            }
        },
        error : function(XMLHttpRequest, textStatus, errorThrown)
        {
             /*Write you error-handling logic here*/
        }
  });
}

此外,我正在尝试使用uploadExcel()部分来确保用户在上传之前已经选择了一个文件,但这是行不通的,为什么?

我做了更多测试,发现问题可能出在JSON上,所以我在这里粘贴了后端代码。

if ("getDisplayPath".equalsIgnoreCase(ajaxAction)){
            String jsonPath = this.displayPath;
            JSONObject json = JSONFactoryUtil.createJSONObject();
            json.put("jsonPath", jsonPath);
            response.getWriter().write(json.toString());

        }

0 个答案:

没有答案