Задать вопрос

Как скачать xml файл, чтобы в браузере не открывался?

Ситуация такая что у меня формируется файл XML, я его через js передаю на кнопку, и файл вместо того чтобы скачиваться, лишь открывается... Ниже будет код

Это файл создающий XML
$export = new \Bitrix\Main\XmlWriter(array(
    'file' => '/upload/orders/xml/' . $list[0]['NUM'] . '.xml', // относительный путь к создаваемому файлу, файл отсутствует и установлен параметр 'create_file', то он будет автоматически создан
    'create_file' => true, //создавать ли файл, или продолжить запись в уже созданный. В данном случае каждый раз будет создаваться и перезаписываться новый файл
    'charset' => 'UTF-8', //кодировка файла
    'lowercase' => false //приводить ли все теги к нижнему регистру
));

$export->openFile();
foreach($list as $item)
$export->writeBeginTag('AltaIndPost');
    $export->writeFullTag('AVIANUM', ($item['AWB_AVIANUM']));
    $export->writeFullTag('NUM', ($item['NUM']));
    $export->writeFullTag('PERSONSURNAME', ($item['SURNAME']));
    $export->writeFullTag('PERSONNAME', ($item['NAME']));
    $export->writeFullTag('PERSONMIDDLENAME', ($item['MIDDLENAME']));
//    $export->writeFullTag('PERSONNAMEENGLISH', ($item['']));
    $export->writeFullTag('IDENTITYCARDNAME', 'Паспорт');
    $export->writeFullTag('IDENTITYCARDCODE', ($item['IDOC_TYPE_CODE']));
    $export->writeFullTag('IDENTITYCARDSERIES', ($item['IDOC_SERIES']));
    $export->writeFullTag('IDENTITYCARDNUMBER', ($item['IDOC_NUMBER']));
    $export->writeFullTag('IDENTITYCARDDATE', ($item['IDOC_DATE']));
    $export->writeFullTag('ORGANIZATIONNAME', ($item['IDOC_ORG']));
    $export->writeFullTag('ORGCOUNTRY', ($item['']));
    $export->writeFullTag('DELIVERYTERMS_TRADINGCOUNTRYCODE', ($item['']));
    $export->writeFullTag('DELIVERYTERMS_DISPATCHCOUNTRYCODE', ($item['']));
    $export->writeFullTag('DELIVERYTERMS_DELIVERYTERMSSTRINGCODE', ($item['']));
    $export->writeFullTag('DEPARTUREPOINT_IATACODE', ($item['']));
    $export->writeFullTag('DELIVERYPOINT_IATACODE', ($item['']));
    $export->writeFullTag('RFORGANIZATIONFEATURES_INN', ($item['']));
    $export->writeFullTag('CountryCode', ($item['']));
    $export->writeFullTag('CountryName', ($item['']));
    $export->writeFullTag('POSTALCODE', ($item['']));
    $export->writeFullTag('City', ($item['']));
    $export->writeFullTag('StreetHouse', ($item['']));
    $export->writeFullTag('PHONEMOB', ($item['']));
    $export->writeFullTag('PHONEHOME', ($item['']));
    $export->writeFullTag('EMAIL', ($item['']));
    $export->writeFullTag('SENDER', ($item['']));
    $export->writeFullTag('ARRIVEDATE', ($item['']));
    $export->writeFullTag('ALLCOST', ($item['']));
    $export->writeFullTag('CURRENCY', ($item['']));
    $export->writeFullTag('ALLWEIGHT', ($item['']));
    $export->writeFullTag('PLACES', ($item['']));
    $export->writeEndTag('AltaIndPost');
$export->closeFile();
$file = '/upload/orders/xml/test.xml';
echo $file;

Это скрипт
$(".uploadXML").on('click', function() {
        let orderSearch = $(this).data('order');
        $.post(
            '/local/components/tsoft/declarant.first.awb.list/templates/.default/xml.php',
            {
                SEARCH_ORDER_ID: orderSearch,
            },

            function (res){
                window.location.href = res;
            }
        );
        return false;
    });

Это кнопка
<td><a class='uploadXML' data-order=<?=$item['NUM']?> href=''>Скачать</a></td>
  • Вопрос задан
  • 1021 просмотр
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Inkognitoss
@Inkognitoss
Full-stack разработчик.
Добавьте аттрибут `download`
<td><a class='uploadXML' data-order=<?=$item['NUM']?> href='' download>Скачать</a></td>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы