Как я могу что-то сделать или позвонить на сервер после загрузки файла - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь разрешить пользователю загружать свои файлы 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());

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...