Подтвердить что ты не робот

Как получить имя файла из содержимого

I Скачан файл как ответ 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

4b9b3361

Ответ 1

Вот как я его когда-то использовал. Я предполагаю, что вы предоставляете вложение в качестве ответа сервера.

Я установил заголовок ответа как это из моей службы 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, '');
        }
    }
}

EDIT: Редактирование ответа в соответствии с вашим вопросом - использование слова 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, '');
        }
    }
}

Подробнее здесь