javascript - 通过 jquery 从 java 下载文件

标签 javascript java jquery file

我在通过 jquery 下载文件时遇到问题。

我有一个在java代码中发送请求的post函数。

我退回了文件,但没有下载。

输入

        <input type="button" id="export-csv" value="Export result in CSV"/>

Html-jquery 代码

$( "#export-csv" ).click(function(  ) {

        var request=$.ajax({
            method: "POST",
            url: 'user/writeCsv',
            data: $( "#search-form" ).serialize(),
            dataType: "text/csv"
        }).done(function(data) {
            window.location.href = (data);
        });   


//      $.post( "user/writeCsvToReturn", $( "#search-form" ).serialize())
    });

Java代码

@RequestMapping(value="/user/writeCsv",method=RequestMethod.POST)
    public FileWriter writeCSVFile(HttpServletResponse   response,ServerSearchCommand ssc, Model model, BindingResult result) throws IOException {

FileWriter fileWriter= new FileWriter("/tmp/searchcsv.csv");
fileWriter.flush();

    //WRITE DATA FILE 


    fileWriter.close();
    return fileWriter;
}

最佳答案

如果您不想提交表单,您可以通过在 get 请求的响应对象中写入文件来解决此问题:-

@RequestMapping(value="/user/writeCsv",method=RequestMethod.Get)
public void writeCSVFile(HttpServletResponse   response,ServerSearchCommand ssc, Model model, BindingResult result) throws IOException {

OutputStream outStream = response.getOutputStream();
 // Write data to this outStream
 outStream.close();
} 

在前端,将文件附加到 iFrame 并使 iFrame stye = display:none :-

    var url = contextPath + "/user/writeCsv";
   var hiddenIFrameID = 'frameid',
    iframe = document.getElementById(hiddenIFrameID);
    if (iframe === null) {
        iframe = document.createElement('iframe');
        iframe.id = hiddenIFrameID;
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
    }
    iframe.src = url;

关于javascript - 通过 jquery 从 java 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328156/

相关文章:

javascript - getElementByClass 它存在于 vanilla js 中吗?嗯?

java - 如何使用 spring 和 hibernate 读取 50MB xls excel 文件

java - 为什么我的代码会抛出 ClassNotFoundException?

javascript - 使用 PDFObject 下载具有动态文件名的 pdf

javascript - 如何获取 HTML 元素的原始高度?

javascript - WordPress 网站上的奇怪 JS 警报

javascript - 我如何让 'get' 被自动调用?

javascript - 如何通过用户角色保护路由? Angular

java - 返回动态类的实例

javascript - 如何在单击按钮时触发选择选项?