Top.Mail.Ru
Скачивание файла без ссылки - разработка и поддержка сайтов BUSSOL

Скачивание файла без ссылки



Автор:

Дата публикации:

Скачивание файла без ссылки

Допустим, на нашем сайте есть pdf-файл каталога товаров или услуг, открытый для скачивания по ссылке всем пользователям. Но хочется, чтобы пользователь оставил свои контактные данные перед тем как он скачает сайт. Например, при клике на кнопку "Скачать каталог", пользователю открывается форма, в которую он вводит свое имя, телефон, почту, если нужно. А по нажатию на кнопку "Отправить" происходит сначала отправка формы, а после сразу скачивание файла. Вот и возникает вопрос: как запустить скачивание файла автоматически после выполнения всех этих действий.

Не стану приводить в этой статье код отправки формы, а приведу пример кода скачивания файла, который следует после успешной отправки формы. Предположим, что на нашем сайте в папке upload находится файл каталога catalog.pdf. Тогда:


$.ajax({
    url: '/upload/catalog.pdf',
    dataType: 'binary',
    xhrFields: {
	'responseType': 'blob'
    },
    success: function(data, status, xhr) {
        var blob = new Blob([data], {type: xhr.getResponseHeader('Content-Type')});
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = 'catalog.pdf';
        link.click();
    }
});

Здесь в параметре url указываем относительный путь до файла, в ответе сервера, в параметре download указываем имя, которое присвоится скачанному файлу.

241519, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (953) 271 62 24

Допустим, на нашем сайте есть pdf-файл каталога товаров или услуг, открытый для скачивания по ссылке всем пользователям. Но хочется, чтобы пользователь оставил свои контактные данные перед тем как он скачает сайт. Например, при клике на кнопку "Скачать каталог", пользователю открывается форма, в которую он вводит свое имя, телефон, почту, если нужно. А по нажатию на кнопку "Отправить" происходит сначала отправка формы, а после сразу скачивание файла. Вот и возникает вопрос: как запустить скачивание файла автоматически после выполнения всех этих действий.

Не стану приводить в этой статье код отправки формы, а приведу пример кода скачивания файла, который следует после успешной отправки формы. Предположим, что на нашем сайте в папке upload находится файл каталога catalog.pdf. Тогда:


$.ajax({
    url: '/upload/catalog.pdf',
    dataType: 'binary',
    xhrFields: {
	'responseType': 'blob'
    },
    success: function(data, status, xhr) {
        var blob = new Blob([data], {type: xhr.getResponseHeader('Content-Type')});
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = 'catalog.pdf';
        link.click();
    }
});

Здесь в параметре url указываем относительный путь до файла, в ответе сервера, в параметре download указываем имя, которое присвоится скачанному файлу.


Другие статьи:  Установки превью-картинки всем элементам определенной категории инфоблока на Bitrix API / Перехват почтового события в Битрикс и запись данных в логи / Уведомление о файлах Cookie на Битрикс

Похожие статьи

Как изменить картинку метки в компоненте Яндекс.Карт Битрикс
Стандартный компонент "Настраиваемая Яндекс.Карта" не имеет настройки для изменения изображения меток. В качестве изображения метки используется стандартный значок. В этом видео я покажу, как изменить стандартное изображением меток через код компонента