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 на Битрикс

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

Добавление товара в избранное на ajax в Битрикс
Добавление товара или статьи в избранное - это обязательная фишка для интернет-магазина или блога. Однако, в Битрикс по умолчанию нет функционала добавления элемента инфоблока в избранное.
Адаптивное ютуб видео на сайте
В этом уроке я покажу вам один из способов адаптировать видео, размещенное на сайте с помощью тега iframe, например, видео с хостинга Ютуб.
Водяной знак на дополнительных фотографиях товара в 1С-Битрикс
Из коробки 1С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ?