![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Загрузка Файла и других данных с формы на пхп скрипт.
Задача: Написать на Flex 3 (AS 3.0) форму с несколькими тектовыми полями и с кнопкой для выбора файла. Проблема: нужно одновременно с файлом отправить еще и данные с формы (Имя фамилию). Решение: В объекте класса URLRequest, который используется для отправки файла .upload() указать в его параметре .data данные которые нужно отправить вместе с файлом. ЗЫ Как быть если у нас нужно отправить не один а несколько файлов??? Код: sendform.as // ActionScript file
import flash.events.Event;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import mx.controls.Alert;
//
private var fileRef:FileReference = new FileReference();
private function init():void
{
// добавляем ивент на загрузку файла
fileRef.addEventListener(Event.COMPLETE, fileloaded);
// ивент на выбор файла
fileRef.addEventListener(Event.SELECT, fileSelected);
}
// кнопка Open file
private function openFile():void
{
// открытие диалогового окна для выбора файла
fileRef.browse();
}
private function fileSelected(event:Event):void
{
// пишем в поле имя файла
file_name.text = event.target.name.toString();
}
// отправка данных с формы
private function SendData():void
{
// объект класса с помощью которого мы пердадим файл и данные на пхп файл
var url_request:URLRequest = new URLRequest();
// указываем адресс куда будут передаватся данные
url_request.url = "http://[host]/php/test/resive_data.php";
// устанавливаем метод отправки POST
url_request.method = URLRequestMethod.POST; // "POST";
// задаем данные с формы в постовые переменные
// как вариант var variables:URLVariables = new URLVariables("name=Franklin");
url_request.data = new URLVariables();
url_request.data.first_name = first_name.text;// = variables; //= { id:"777"};
url_request.data.last_name = last_name.text;
// отправляем фай с помощью url_request в котором мы указали данные с формы, и по этому они все уходят вместе
// второй параметр "picture" - это название в ассоциативом массиве $_FILES (для php)
// елемента в котором будут находится даные файла - $_FILES ['picture'] - тут будет файл отправленный
fileRef.upload(url_request, "picture");
}
// выполняется при событии файл загрузился
private function fileloaded(event:Event):void
{
Alert.show("File and data loaded!!!");
}
sendfom.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();"> <mx:Label x="20" y="38" text="First Name"/> <mx:TextInput x="92" y="36" id="first_name"/> <mx:Button x="168" y="92" label="Select File" id="select_file" click="openFile();"/> <mx:Button x="20" y="122" label="Send Data" id="send_data" click="SendData();"/> <mx:Script source="sendform.as" /> <mx:TextInput x="92" y="66" id="last_name"/> <mx:Label x="20" y="68" text="Last Name"/> <mx:Label x="47" y="94" text="File"/> <mx:TextInput x="92" y="92" width="68" enabled="false" id="file_name"/> </mx:Application> Получающий пхп файл. Они пишет ифо о полученных данных, хотя может перемещать файл в в какуюто директорию, и сохранять под именем id записи данных которые пришли вместе с файлом с формы и которые он же записал в БД. resive_data.php <?php
$fpp = fopen('code.txt', 'w');
fwrite($fpp, 'Resive data:
');
fwrite($fpp, "In _POST[] array:
");
fwrite($fpp, 'first_name: ' . $_POST['first_name'] . '
');
fwrite($fpp, 'last_name: ' . $_POST['last_name'] . '
');
fwrite($fpp, "In _FILES[] array:
");
fwrite($fpp, "File data is in key 'picture' " . $_POST['last_name'] . '
');
$csv = '_FILES[] array keys:
';
foreach(array_keys($_FILES) as $title)
{
// array_keys percurs the title of each vector
$csv .= $title . '
';
//$csv .= ' --- ';
}
fwrite($fpp, $csv);
fclose($fpp);
?>
Цитата:
Последний раз редактировалось CblP; 11.08.2008 в 18:32. |
|
|||||
|
что. никому не интересно? Или все уже давно это шарят, а я кричу что открыл Америку!?
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Интересно. Спасибо.
|
|
|||||
|
Banned
[+6 27.11.09]
[++4 30.04.09] Регистрация: Sep 2008
Сообщений: 235
|
Опа то что нада )
даже ещё й работает ) Последний раз редактировалось AQUAFRESH; 01.11.2009 в 01:28. |
|
|||||
|
рад, что пригодилось! =)
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
Может уже не актуально, но все равно спасибо.
Не подскажите, если мне нужно загрузить несколько файлов, для каждого файла нужно отдельно вызывать fileRef.upload ? Последний раз редактировалось sarjick; 09.03.2010 в 23:08. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 6
|
Цитата:
Для того чтоб выбрать сразу несколько файлов можно воспользоватся классом FileReferenceList подробнее можно прочитать здесь: http://help.adobe.com/ru_RU/FlashPla...filter_air=2.6 |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 36
|
Отличная тема ...
Заинтересовало ... |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|