PDA

Просмотр полной версии : почти загрузка файла


romziki
08.02.2008, 02:08
Написал скриптец, делает такое:
1) скачивает картинку из URL1 в ByteArray
2) нужно аплоадить эту картинку в другое место. Перерыл все мануалы, и нашел единственное , вроде бы решение:

var request:URLRequest = new URLRequest ( 'http://japan/index.php' );
var loader: URLLoader = new URLLoader();
request.contentType = 'application/octet-stream';
request.method = URLRequestMethod.POST;
request.data = DATA;
loader.load( request );


А PHP уже забираю
$GLOBALS[ 'HTTP_RAW_POST_DATA' ]
Но проблема в том, что я хочу помимо файла, передать еще пару параметров, для этого мне надо бы использовать enctype=multipart/form-data, но не понятно, каким образом передать вместе файл + некоторые еще поля. Может быть, кто-либо сталкивался?

upd: есть конечно еще вариант перевода в base64 и отправлять через обычные urlvariables но не хотелось бы...

Спасибо!

BlooDHounD
08.02.2008, 02:40
чкркз GET

romziki
08.02.2008, 02:45
а причем тут GET сорри?

me2
08.02.2008, 03:09
эм.. если пхп знаешь{
то первой строкой передай параметры и отпарсь их, а данные в raw_post_data пусть идут со второй строки.
типа вот дамп raw_post_data:
param1=1;param2=2;...;paramN=N
datatatatadastratafatatra.... (это такие данные)
далее в php бери первую строчку, explode(';') ей и вперёд.
ну можно свой синтаксис придумать, это самый быстрый и самый лёгкий. Главное переводить в urlencode символ ; и =
}если нет{
то new URLRequest ( 'http://japan/index.php?param1=1&param2=2' ); -> самое простое.
}

romziki
08.02.2008, 03:13
я это тоже продумывал. Но как-то не кошерно :)

Значит я с помощью AS к моему ByteArray добавляю в начало строку со своими параметрами, а потом считываю с помощью PHP. А что идейка неплохая, попробую реализовать, СПАСИБО :)

PS есть еще у кого варианты?

me2
08.02.2008, 03:25
ну не обязательно первой, можно вообще создать xml и отдать ево в пхп, а там отпрасить.
<ultramega>
<param>
<name>param1</name>
<value>param2</value>
</param>
<bytearray>
<![CDATA[ datdatdatdatdatda ]]>
</bytearray>
</ultramega>

BlooDHounD
08.02.2008, 11:44
romziki, как причём?
var params:URLVariables = new URLVariables();
params.my_param = 5;
var request:URLRequest = new URLRequest ( 'http://japan/index.php?' + params.toString() );
// дальше ваш код$_GET['my_param']

me2, xml не выйдет. как только попадётся 0й байт, сразу всё обломается.

romziki
08.02.2008, 13:45
муахаха, слона то я и не заметил :))

Спасибо BlooDHounD. Тогда и нет смысла байтэррей менять ;)))