ExtJS文件上传响应?

时间:2011-03-30 10:47:56

标签: java file-upload extjs httpresponse

我正在尝试通过Web界面验证某些文件的内容,并使用响应启用/禁用其他一些功能...如保存按钮。我已经完成了提交和文件处理(存根)但我似乎无法让我的响应正常工作。

问题:响应尝试让用户下载带有响应内容的文件。我想将响应传递给要处理的成功函数。

JS功能代码:

function validateCopybook() {
        //submit values. 
        console.log("validating");
        if (this.getForm().isValid()) {
            this.getForm().submit({
            url : 'batch/validateCopybook.json',
            waitMsg : 'Validating...',
            success : function(form, action) {
                this.msg('Success', 'Processed file on the server');


                }
            });
        }
    }

服务器端代码:

public ModelAndView validateCopybook(HttpServletRequest request, HttpServletResponse response) throws Exception
{
    // Check whether we're dealing with a multipart request
    String contentHeader = request.getHeader("content-type");
    boolean isMultipart = (contentHeader != null && contentHeader.indexOf("multipart/form-data") != -1);

    if (isMultipart == false)
    {
        return Helper.errorResponse("not multipart");
    }
    else
    {
        DefaultMultipartHttpServletRequest reqM = (DefaultMultipartHttpServletRequest) request;
        MultiValueMap<String, MultipartFile> fileMap = reqM.getMultiFileMap();
        MultipartFile copyIn = fileMap.get("copy-path-in").get(0);
        MultipartFile copyOut = fileMap.get("copy-path-out").get(0);
    }

    System.out.println(response.getContentType());
    response.setContentType("application/json");

    ModelAndView mav = Helper.successResponse("success");
    return mav;
}

回复了回复:

ModelAndView: reference to view with name 'json'; model is {model={data={"success":true,"info":"success","dataLength":0,"data":[]}}}

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

好的我没有正确设置响应标头

 response.setContentType("application/json");

不够。

        MappingJacksonJsonView view = new MappingJacksonJsonView();
    view.setContentType("text/html");
    Map<String, Object> responseMap = new HashMap<String, Object>();
    responseMap.put("success", true);
    ModelAndView mav = new ModelAndView(view, responseMap);

正常工作。

答案 1 :(得分:0)

  

我想把响应传递给   要处理的成功功能。

您已在成功功能中获得服务器的响应!成功函数中的action参数包含您的响应的详细信息。您可以通过action.result.variablename访问回复。

答案 2 :(得分:0)

服务器响应类型应为“text / html”。 asp.net mvc结果:

return Json(new
{
    success = true,
    msg = "Your file has been uploaded",
    data = new
        {
            name, size
        }
}, "text/html");

现场演示是here