当前位置: 首页 > 面试题库 >

如何从内容处置获取文件名

欧阳成弘
2023-03-14
问题内容

我下载了文件作为ajax的响应。如何从内容处置中获取文件名和文件类型并显示其缩略图。我有许多搜索结果,但找不到正确的方法。

$(".download_btn").click(function () {
    var uiid = $(this).data("id2");

    $.ajax({
        url: "http://localhost:8080/prj/" + data + "/" + uiid + "/getfile",
        type: "GET",
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(textStatus, errorThrown);
        },
        success: function (response, status, xhr) 
        {
            var header = xhr.getResponseHeader('Content-Disposition');
            console.log(header);     
        }
    });

控制台输出:inline; filename=demo3.png


问题答案:

这是我有时使用它的方式。我假设您将附件作为服务器响应提供。

我从REST服务中这样设置响应头 response.setHeader("Content-Disposition", "attachment;filename=XYZ.csv");

function(response, status, xhr){
    var filename = "";
    var disposition = xhr.getResponseHeader('Content-Disposition');
    if (disposition && disposition.indexOf('attachment') !== -1) {
        var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
        var matches = filenameRegex.exec(disposition);
        if (matches != null && matches[1]) { 
          filename = matches[1].replace(/['"]/g, '');
        }
    }
}

编辑:编辑答案以适合您的问题-使用单词inline代替attachment

function(response, status, xhr){
    var filename = "";
    var disposition = xhr.getResponseHeader('Content-Disposition');
    if (disposition && disposition.indexOf('inline') !== -1) {
        var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
        var matches = filenameRegex.exec(disposition);
        if (matches != null && matches[1]) { 
          filename = matches[1].replace(/['"]/g, '');
        }
    }
}


 类似资料:
  • 问题内容: 当我在浏览器中使用以下URL时,它将提示我下载带有JSOn内容的文本文件。 https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json (单击上面的URL查看下载的文件内容) 现在,我想创建一个php页面。我希望当我调用此php页面时,它应调用上述URL并从文件中

  • 在程序入口文件index.js 中可以在init方法中获取server对象,通过该server可以获取config,具体方式如下: init(server, options) { const config = server.config(); const url = config.get('elasticsearch.url'); } 自定义配置 1.配置校验与默

  • 我开始学习Netty 4 Http服务器,但我已经遇到了一个问题。如何以最简单的方式从POST请求中获取内容? 我在浏览Netty的文档,但很复杂。 提前道谢! 编辑:我正在使用这个代码接收数据。 正如您所看到的,有三条注释行返回给我一个异常:

  • 问题内容: 我试图做到这一点,这样我的站点上的mp3可以通过单击鼠标左键来下载,而不必单击鼠标右键并另存为。因此,为此,我必须设置Content- Disposition:附件。这是我的第一个网站,所以我不知道如何实际执行此操作,但是我是在html标记中执行此操作还是在托管网站上以某种方式进行设置? 这是我的标记外观的示例。 问题答案: MP3列表示例: download.php:

  • 我想知道是否可以为AWS设置一个lambda函数,每当一个新的文本文件上传到s3 bucket时就会触发这个函数。在函数中,我想获取文本文件的内容,并以某种方式对其进行处理。我在想这有没有可能...? 例如,如果我上传了foo.txt,内容为foobarbaz,我希望在lambda函数中使用foobarbaz,这样我就可以用它来做一些事情。我知道我可以从getObject获取元数据,或者类似的方法

  • 如何从容器内部获取docker的容器名称? 我不能使用“inspect”,因为我必须使用容器内部的脚本从JSON url获取信息。