【问题标题】:jQuery String to Downloaded filejQuery 字符串到下载的文件
【发布时间】:2012-03-28 16:06:43
【问题描述】:

将长字符串(13,000 多个字符)转储到带有名称和扩展名的下载文件中的最佳方法是什么?如果需要,可以使用 jQuery,可能是 ajax 或 php。

谢谢。

function output(){
$.ajax({
    dataType:"html",
    type:"POST",
    data:{
        content:$("#fileDump").contents().find('html').html(),
        fname:fileName
    },
    url:"filer.php",
    success: function(data){
        console.log(data);
    },
    error: function(data, status, error){
        console.log(status);
        console.log(error);
    }
});

}

【问题讨论】:

  • 字符串是在客户端还是服务器端生成的?
  • 您回答了自己的问题 jQuery、ajax 和 php(尽可能是服务器端语言)。我会问为什么服务器没有生成 13,000 多个字符,为什么 jQuery 是所见即所得的?无论哪种方式,请确保在您的 Ajax 请求中使用 POST 而不是 GET
  • 是的,所见即所得。服务器端没有保存任何内容。
  • @anijam 你确定你指定了 POST 而不是 GET ????
  • 是的。我刚刚检查过。当我重做它时,我一定是忘记了。三天来,我一直在一遍又一遍地研究这件作品。我得到了帖子,但我没有看到它的结果。

标签: jquery file download


【解决方案1】:

PHP:

$content = "a long string";
file_put_contents($file, $content);
// force download
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');
readfile($file);

使用file_put_contentsheaderreadfile

如果需要,您可以向Content-Disposition 添加文件名:

header('Content-Disposition: attachment; filename="a_text_file.txt');

【讨论】:

  • 这不是我遇到问题的 php。这是 jquery/ajax。我得到了 php 的响应,但它不会下载。
  • 发布您当前的代码。然后我们将了解您的问题
  • 添加了 ajax。不知道该怎么办。我一直在网上看,每个人都说使用 iframe,但恐怕我不知道那是什么意思。它已经在一个隐藏的 iframe 中。我只想让用户下载。
  • 我确实使用 window.location 进行了功能齐全的设置,但当然,这是一个有限制的 GET。我也让它在没有 PhP 的情况下工作,但因为它没有标题......
猜你喜欢
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2018-07-12
相关资源
最近更新 更多