Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
ParanoidAndroid
0 / 0 / 2
Регистрация: 04.11.2011
Сообщений: 29
#1

Скачивание файла AJAX - JavaScript

31.07.2013, 05:54. Просмотров 3102. Ответов 3
Метки нет (Все метки)

Доброго, суть вопроса такова. С помощью аякс легко и просто прочитать заголовки сервера, а можно ли подменить заголовок, как это делается функций header() на стороне сервера?
Например, у нас есть текстовый файл, с помощью АЯКС мы открываем его get запросом и читаем содержимое

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function vote(){   
 
    var req = getXmlHttp();  //функция получение XMLHttpRequest      
 
    req.onreadystatechange = function() {       
 
        if (req.readyState == 4) { 
 
            if(req.status == 200) {                 
 
                alert("Ответ сервера: "+req.responseText);
 
            }         
 
        }
 
    }
 
 
 
       
 
    req.open('GET', 'test.txt', true);   
    req.send(null); 
}
В данном примере мы получим содержимое файла test.txt, а каким способом можно инициировать загрузку файла из JS скрипта?

Добавлено через 14 минут
Вообще, как я понял копать нужно в сторону заголовков, что бы браузер инициировал скачивание, перед отправкой файла, нужно прописать content-type, можно ли подменить заголовок от сервера с помощью js, что бы браузер воспринял контент как необходимый для скачивания?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 05:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скачивание файла AJAX (JavaScript):

Скачивание файла и редирект
Добрый день, подскажите как сделать при нажатии на ссылку чтоб выполнялось два действия, скачивания прайс-листа и переход на другой сайт. ...

Скачивание файла в JavaScript
Здравствуйте. Меня интересует, как в JavaScript скачать на компьютер и запустить файл. Чтобы он скачивался в браузер, а там уже запускался,...

Скачивание файла в фоновом режиме
Ищу грамотного человека, для выполнения следующей задачи: по протоколу http нужно выполнить скачивание файла в фоновом режиме, без участия...

Скачивание файла без дополнительных действий
Каким образом можно сделать, чтобы файл скачивался с сервера сразу при переходе на страницу? Со всеми необходимыми подтверждениями...

Запретить повторное скачивание файла одному пользователю.
Сайт на чистом html, поэтому юзнуть php не могу вставкой. нужен скрипт скачивающий файл только один раз для одного айпи. Т.е...

Как сделать скачивание файла после просмотра google рекламы?
У меня проблема для javascript kode как сделать скачивание файла после просмотра реклам в 1 ден одного ip просмотр на google рекламы? у...

3
kalabuni
Нарушитель
3163 / 2512 / 602
Регистрация: 18.04.2012
Сообщений: 7,609
31.07.2013, 08:39 #2
с помощью технологии AJAX никакие файлы не скачиваются

HTML-страница получает ответ от файла на сервере в виде строки символов

это для вас "Да здравствует пофигизм!" - является лозунгом
а для компьютера - это просто набор символов и никакого смысла в этом наборе символов компьютер уловить не может

что текстовое содержимое, что код на javascripte - оно всё набор символов
и в вашей власти превратить этот набор символов либо в текст на странице, либо в исполняемый javascript-код
посмотрите тему XmlHTTPRequest с подгрузкой JavaScript
1
ParanoidAndroid
0 / 0 / 2
Регистрация: 04.11.2011
Сообщений: 29
31.07.2013, 22:05  [ТС] #3
Спасибо за пояснения. То есть аяксом подключаться к файлу идея глупая, а что если помещать ссылку на фаил в скрытый iframe, тогда по идее браузер должен инициировать закачку или я ошибаюсь?

Добавлено через 5 часов 40 минут
Ответ оказался настолько простой, что мне кажется должно быть стыдно не только мне, но и всем кто помогал, но так и не дал простой ответ. Что бы инициировать загрузку страницы, не нужно подменять заголовки или делать скрытые фреймы, достаточно элементу <a> добавить атрибут download="Желаемое имя файла", пример

<a href="/test.mp3" download="test.mp3">EXAMPLE</a>
0
kalabuni
Нарушитель
3163 / 2512 / 602
Регистрация: 18.04.2012
Сообщений: 7,609
01.08.2013, 03:47 #4
Цитата Сообщение от ParanoidAndroid Посмотреть сообщение
должно быть стыдно не только мне, но и всем кто помогал, но так и не дал простой ответ
увольте меня от этого
стыдитесь сами
ибо ваш вопрос совершенно никак не был связан с тем решением, кое вы нашли
спрашивали вы "про дядьку в Киеве", а ответ нашли "в огороде с бузиной"

кстати, имейте в виду, что работает этот атрибут далеко не везде
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 03:47
Привет! Вот еще темы с решениями:

Отправка файла на сервер. AJAX. Чистый js
Здравствуйте. В рамка написания своего сайта задался целью создать небольшую библиотеку, выполняющую большую часть связи с сервером с...

Как скрыть имя файла в ajax-запросе?
Как бы скрыть имя файла в ajax-запросе? $.ajax({ url:&quot;/file.php&quot;, ... $(&quot;#id&quot;).load(&quot;/file.php&quot;); и т.д. Не хотелось бы...

AJAX - подключение .php файла - ошибка IE8
Друзья, очень нуждаюсь в вашей помощи. В IE 8 возникает ошибка при попытке загрузить в DIV содержимое .php файла (в файле находится...

Ajax: как получить результат работы PHP файла?
Привет всем. Есть php файл который обрабатывается при добавлении товара в корзину. И возвращает результаты в переменную $_RESULT. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru