小编典典

没有在服务器中保存文件,我无法在Spring MVC中通过Ajax下载文件

java

在一页中,有一个下载文件的链接,例如 \myapp\controller\file?id=45

在控制器中有

        InputStream stream = null;          
        byte [] buffer =someService.getFile(somedata); 
        stream = new ByteArrayInputStream(buffer);
        System.out.println("get file---");
         response.addHeader("Content-Disposition","attachment; filename=report.pdf");

        try {
            IOUtils.copy(stream, response.getOutputStream());
                System.out.println("get file---OK");
        } catch (Exception e) {
            e.printStackTrace();
        }

这项工作正常,但在另一页

         $.ajax({
                type: 'POST',
                url: '${url}',                  
                data: {sdate: $('#date').val() },
                success: function (data) {
                    alert(data)                     
                },
                error:function (xhr, ajaxOptions, thrownError) {
                    console.log("in error");
                } 
            });

在控制台上曾经说过

获取文件-

获取文件-确定

但是浏览器什么也不做。

我添加了成功alert(data)进行调试,它显示了PDF文件的二进制内容,例如:

%PDF-1.4% 3 0 obj <> streamx ͝O $ q )ޑ: U] E d A 1^ h ǃ \ nS X + RI J Y r F

现在,资源管理器如何理解要下载的文件?

由于缺少许可证,我无法保存服务器端的文件


阅读 232

收藏
2020-11-26

共1个答案

小编典典

您不能使用ajax下载文件。

无论使用

2020-11-26