Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.11.2014, 19:39
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Изменить тип загрузки файла
Всем привет, подскажите плз такой глупый момент:

Есть код:

_addEventListner: function() {
        var that = this,
            audioInput = document.getElementById('uploadedFile'),
            dropContainer = document.getElementsByTagName("canvas")[0];
        //listen the file upload
        audioInput.onchange = function() {
            //the if statement fixes the file selction cancle, because the onchange will trigger even the file selection been canceled
            if (audioInput.files.length !== 0) {
                //only process the first file
                that.file = audioInput.files[0];
                that.fileName = that.file.name;
                if (that.status === 1) {
                    //the sound is still playing but we upload another file, so set the forceStop flag to true
                    that.forceStop = true;
                };
                document.getElementById('fileWrapper').style.opacity = 1;
                that._updateInfo('Uploading', true);
                //once the file is ready,start the visualizer
                that._start();
            };
        };


на странице с инпут тайп file и id='uploadedFile' выбирается файл и попадает в "that.file"

как мне изменить код так, что бы не выбирался файл с компьютера юзера, т.е. не с поля input
а с прямого урла в инете, например "http://site.ru/new-file.pdf"
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2014, 09:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

desperado, данный код выгружает файл с компьютера клиента на сервер. А вот то, что ты просишь - это скачивание файла твоим сервером с другого сервера. Браузер клиента тут будет лишним звеном, понимаешь?
У тебя PHP на сервере? Тогда гугли curl download file. В зависимости от настроек, может сработать и просто функция copy(source, destination)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2014, 11:29
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Сообщение от danik.js Посмотреть сообщение
desperado, данный код выгружает файл с компьютера клиента на сервер. А вот то, что ты просишь - это скачивание файла твоим сервером с другого сервера. Браузер клиента тут будет лишним звеном, понимаешь?
У тебя PHP на сервере? Тогда гугли curl download file. В зависимости от настроек, может сработать и просто функция copy(source, destination)
браузер тут не лишнее звено, он потом показывает, что скрипт делает с этим mp3 файлом

как быть...в php лезть не вариант.

Тут проблема в том, что юзеру (в браузер) мне надо вывести файл с сервера, урл которого приходит например в респонсе от сервера или в json, не важно. Вот что мне нужно.

Последний раз редактировалось desperado, 19.11.2014 в 11:38.
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2014, 12:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от desperado
он потом показывает, что скрипт делает с этим mp3 файлом
Какой скрипт? Клиентский или серверный?
Файл лежит на том же сервере или на чужом?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2014, 12:35
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Сообщение от danik.js Посмотреть сообщение
Какой скрипт? Клиентский или серверный?
Файл лежит на том же сервере или на чужом?
Клиентский скрипт конечно.
Файл лежит на другом сервере.
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2014, 15:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от desperado
Файл лежит на другом сервере.
Ну тогда ты не сможешь получить его из браузера через асинхронный запрос. Придется проксировать своим сервером.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2014, 15:18
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

Сообщение от danik.js Посмотреть сообщение
Ну тогда ты не сможешь получить его из браузера через асинхронный запрос. Придется проксировать своим сервером.
да все проксируется, сам факт...как мне отдать этому скрипту файл по
ссылке, что бы потом сделался объект с него.

Я написал вам в ЛС, там скрипт. Может будет интересно...
помогите плз.
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2014, 20:08
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от desperado
как мне отдать этому скрипту файл по
ссылке, что бы потом сделался объект с него.
можно получить этот файл с помощью XMLHttpRequest, у которого выставить responseType="blob". Разумеется, если тот другой сервер выставит специальный заголовок ответа, разрешающий кроссдоменный запрос. А ведь может и не выставить.

Ну а если потом ты собираешься этот файл отправить как есть прямо к себе на сервер (ведь это задумано?), то всё-таки лучше серверным скриптом его и забрать. Почему тебе такой вариант не нравится, пока что непонятно.
Ответить с цитированием
  #9 (permalink)  
Старый 20.11.2014, 06:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Яростный Меч
можно получить этот файл с помощью XMLHttpRequest
Мы так с ним и сделали. Работает, но только когда полностью загрузит файл. А требуется прогрессивное воспроизведение по мере загрузки.

Сообщение от Яростный Меч
Ну а если потом ты собираешься этот файл отправить как есть прямо к себе на сервер (ведь это задумано?)
Нет. У него плеер на странице. Со спектральным анализатором.

Второй вариант - использовать вместо XHR непосредственно элемент <audio>.
Но в файрфоксе выдает тишину из-за CORS (юзается createMediaElementSource). А Safari чего-то не хватает для визуализации.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить имя скачиваемого файла? Dimaz Общие вопросы Javascript 4 13.09.2014 16:25
Как прочитать параметры файла JPEG ещё в браузере, до загрузки на сервер? Webnode Общие вопросы Javascript 6 13.01.2014 20:44
Как получить имя файла и изменить его? nedosalivan Общие вопросы Javascript 5 29.03.2010 17:51
Загрузка файла AJAX'ом - почему-то переводит на страницу загрузки файла .andreev AJAX и COMET 13 21.10.2009 22:25
Поле загрузки файла kotofeich Элементы интерфейса 3 30.07.2008 11:24