Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2011, 13:22
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 1  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
По умолчанию Возможно ли отправить e.target.data (mp3) на сервер?

Возможно ли отправить e.target.data (скаченный с помощью URLLoader, mp3 файл) на сервер и сохранить?

Можете показать пример?


//C этим разобрались теперь друшая проблемма: ошибка потока при передаче файла на php
Код AS3:
	var encoder:Base64Encoder = new Base64Encoder();
		encoder.encodeBytes(e.target.data); // теперь в data действительно byteArray
 
		var urlvcariables:URLVariables = new URLVariables();
				urlvcariables.mp3 = encoder.toString();
 
			var urlrequest:URLRequest = new URLRequest();
				urlrequest.method = URLRequestMethod.POST;
				urlrequest.data = urlvcariables;
				urlrequest.url="http://1***/flash/minicoder.php"
			var urlloader:URLLoader = new URLLoader();
				urlloader.load(urlrequest);
даже при пустом php файле((

П.С. таким образом я пытаюсь передать песню из вконтакте -> через клиент Флеш -> на сервер
так как у вконтакте защита по ipадресам, с самого сервера песню не скачать...
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH


Последний раз редактировалось Azo; 22.09.2011 в 14:57.
Старый 21.09.2011, 13:38
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 2  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
1. URLRequest
с установленными method = URLRequestMethod.POST
и data = e.target.data
http://help.adobe.com/ru_RU/FlashPla...uest.html#data

2. На сервере - принять POST-данные и сохранить. Реализация зависит от сервера.

Старый 21.09.2011, 14:13
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 3  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Я отправляю
Код AS3:
var urlvcariables:URLVariables = new URLVariables();
				urlvcariables.mp3 =e.target.data;
				urlvcariables.uid = MYVK._viewer_id;
				urlvcariables.random = Math.random() * 10000;
			var urlrequest:URLRequest = new URLRequest();
				urlrequest.method = URLRequestMethod.POST;
				urlrequest.data = urlvcariables;
				urlrequest.url="http://***/minicoder.php"
			var urlloader:URLLoader = new URLLoader();
				urlloader.addEventListener(IOErrorEvent.IO_ERROR, ErrorVideo);
				urlloader.addEventListener(Event.COMPLETE, Download);
				urlloader.load(urlrequest);
а до php доходит только этот кусок от mp3:
Код:
 ÿúÕL^÷
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 21.09.2011, 14:32
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 4  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Данные бинарные. Поэтому:

var encoder:Base64Encoder = new Base64Encoder();
encoder.encodeBytes(e.target.data);
urlvcariables.mp3 =encoder.toString();

Добавлено через 3 минуты
e.target.data это byteArray?
(encodeBytes приниает byteArray в качестве параметра).

Добавлено через 4 минуты
ну и в php: base64_decode ($_POST['mp3'])

Старый 21.09.2011, 14:48
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 5  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
e.target.data это ответ от urlloader.load... mp3 файла

попробую.. если че отпишусь) спасибо

Добавлено через 1 час 34 минуты
не хочет он переобразывывать encoder.encodeBytes(e.target.data);

Код:
information=TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать 
"ÿúÕL^÷IEÇñì{`tù<É\ýsQ”ü"w+©fžÀ¨uB•ä<G<3N£H=X~ÁעV½d1¸Ü PKgåm[Eî/a 1ˆÈ# и так далее и так далее
в byteArray
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 21.09.2011, 19:07
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Данные бинарные. Поэтому:

var encoder:Base64Encoder = new Base64Encoder();
Странная логика.
Я бы посмотрел URLLoader#dataFormat, URLLoaderDataFormat#BINARY.

Старый 21.09.2011, 19:43
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 7  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Странная логика.
Я бы посмотрел URLLoader#dataFormat, URLLoaderDataFormat#BINARY.
URLLoader к передаче данных на сервер никакого отношения не имеет.
Но Psycho Tiger прав в другом: dataFormat действительно необходимо установить для того, чтобы решить проблему ПОЛУЧЕННЫХ данных (а не проблему передачи на сервер):

Цитата:
Ошибка типа Coercion: невозможно преобразовать ... и так далее и так далее
в byteArray
(Т.е. в urlloader загружен НЕ bytearray)

Исходя из того, что dataFormat по умолчанию "text", то ПЕРЕД загрузкой urlloader.load (загрузка mp3 файла) необходимо лоадеру сказать: dataFormat = URLLoaderDataFormat.BINARY.

После этого загрузить (urlloader.load).
Ну и далее как и было описано (передача данных методом POST):

Код AS3:
var encoder:Base64Encoder = new Base64Encoder();
 encoder.encodeBytes(e.target.data); // теперь в data действительно byteArray
 urlvcariables.mp3 =encoder.toString();

Старый 22.09.2011, 13:13
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 8  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Теперь mp3 файл действительно скачивается...
Но осталось еще его отправить на сервер...
и тут ошибка потока.

может при отпраке тоже надо сделать URLLoaderDataFormat#BINARY ??
Как быть если в Urlvariables не только файлы, но и текстовые данные ...

URLLoaderDataFormat#BINARY + URLLoaderDataFormat#TEXT ???? )))
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 22.09.2011, 13:29
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 9  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Цитата:
URLLoader к передаче данных на сервер никакого отношения не имеет.
Чёй-то? Еще как имеет...

Старый 22.09.2011, 14:21
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 10  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
пробую даже через multiparturlloader - та же ошибка потока

Код AS3:
					var multy:MultipartURLLoader = new MultipartURLLoader();
						multy.addFile(e.target.data, "mp3", "mp3","audio/mpeg");
						multy.addVariable("photosurls", photosurls);
						multy.addVariable("uid", MYVK._viewer_id);
						multy.addVariable("duration", General.speedbox.selectedIndex + 1);
						multy.addVariable("folder", FOLDER_NAME);
						multy.addEventListener(ProgressEvent.PROGRESS, SendProgress);
						multy.addEventListener(Event.COMPLETE, Sended);
						multy.addEventListener(IOErrorEvent.IO_ERROR, ErrorVideo);
						multy.addEventListener(SecurityErrorEvent.SECURITY_ERROR, SecurityErrore);
						multy.load("http://***/flash/minicoder.php");
Добавлено через 2 минуты
в пхп делаю так
PHP код:
$mp3=($_POST['mp3']);
$fp fopen("usersources/".$folder."/".$uid.".mp3"'w');
fwrite($fp$mp3);
fclose($fp); 
(((

Добавлено через 3 минуты
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.