【问题标题】:Link/button to download file from subfolder-- browser just browses链接/按钮从子文件夹下载文件——浏览器只是浏览
【发布时间】:2012-09-04 04:09:18
【问题描述】:

我试过了:

var url = '/files/123.txt';
$('a').click(function(e) {
    e.preventDefault();  //stop the browser from following
    window.location.href = url;
});

这只是让firefox浏览到文本文件,而不提示下载。

这个功能我也试过了:

var downloadURL = function downloadURL(url)
{
    var iframe;
    iframe = document.getElementById("hiddenDownloader");
    if (iframe === null)
    {
        iframe = document.createElement('iframe');  
        iframe.id = "hiddenDownloader";
        iframe.style.visibility = 'hidden';
        document.body.appendChild(iframe);
    }
    iframe.src = url;   
}

有同样的问题——在浏览器中打开,没有下载提示。

我尝试过使用 apache:

<Files *.txt>
  ForceType applicaton/octet-stream
</Files>

我在子文件夹和父文件夹中都放置了带有此代码的.htaccess。此 apache 方法似乎仅在请求的文本文件与网页位于同一文件夹中时才有效。当文本文件放入子文件夹/files/ 时,同样的问题仍然存在——没有下载提示。

真的,现在有什么秘密方法可以做到这一点吗?

【问题讨论】:

    标签: javascript jquery html apache


    【解决方案1】:

    如果您想使用.htaccess 方式,则需要更改标题而不是内容类型:

    <FilesMatch "\.(?i:txt)$">
      Header set Content-Disposition attachment
    </FilesMatch>
    

    【讨论】:

    • 不起作用。浏览器只是浏览器那里。将其放在父文件夹和子文件夹中。
    • 您只需要子目录(文本文件所在的位置)中的.htaccess。尝试清除缓存并刷新页面,或关闭浏览器并重新启动,然后再试一次。
    【解决方案2】:

    利用 PHP 标头实现大多数功能。如何做到这一点可以在这里找到: http://webdesign.about.com/od/php/ht/force_download.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-16
      • 2011-12-19
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 2014-10-27
      相关资源
      最近更新 更多