【问题标题】:Find out what is the extention of the file downloaded from url?找出从 url 下载的文件的扩展名是什么?
【发布时间】:2017-12-15 15:09:00
【问题描述】:

我正在尝试从 url 下载文件:

http://distedu.ukma.edu.ua/mod/resource/view.php?id=5475

重定向到文件真正所在的其他网址。

问题是我需要以可读的格式保存文件。有没有办法以这种方式下载文件的扩展名?

我的应用程序是 phonegap/cordova,但我认为我可以使用任何可以与 HTML5 文件 api 一起使用的东西。或者任何提供中间数据的东西,而不是立即将其写入文件。

那里的文件大多是pdf或pptx。

编辑:

我尝试通过发送 Head 请求来获取 mime 类型:

var testUrl = window.location.href;
    var xhttp = new XMLHttpRequest();
    xhttp.open('HEAD', testUrl);
    xhttp.onreadystatechange = function () {
        if (this.readyState == this.DONE) {
            console.log(this.status);
            var contentType = this.getResponseHeader("Content-Type");
            Debug.log(contentType.)
        }
    };
    xhttp.send();

这给了我以下字符串:

text/html; charset=UTF-8;

我认为这意味着不需要指定更具体的类型?

【问题讨论】:

  • 我对phonegap/cordova一无所知,但一般来说,文件扩展名在技术上是没有意义的,真正的信息包含在mimetype中——例如,application/pdf for pdf 或 application/vnd.openxmlformats-officedocument.presentationml.presentation 用于 pptx。
  • @manassehkatz 您能否提供从 javascript 中的下载 url 获取 mime 类型的任何选项?
  • 在上面的示例中,text/html 是 mimetype。我从未使用过 HEAD 请求 - 似乎它应该提供与 GET 相同的标头,但您可能想尝试使用 GET 来确定相同的代码。

标签: javascript cordova url download file-transfer


【解决方案1】:

您可以使用mimetype 信息来了解您正在下载的文件类型。
您可能需要查看 cordova-plugin-file-transfer 插件和 cordova-plugin-file-opener2 插件来帮助您解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-17
    • 2015-03-04
    • 2010-09-08
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多