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 указываем имя, которое присвоится скачанному файлу.

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (950) 692-91-71

Допустим, на нашем сайте есть 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 на Битрикс

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

Как удалить брошенные корзины в Битрикс
Бывает ситуация, когда пользователь добавил товары в корзину, но по какой-то причине не оформил заказ. При этом корзина никуда не девается и продолжает висеть на сайте. В настройках можно задать время хранения брошенных корзин, но почему-то настройка не работает. Остается один выход - программное удаление брошенных корзин