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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.02.2009, 09:23
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
>>посмотрите исходник плиз, как это можно переделать на as3.
Не смотрел, тк. имею уже рабочую на AS3

Для тестов нужна программка Apache
Пишем для Flex или для Adobe Flash CS4 (версия плеера 10) такой документ класс
Код AS3:
//LoadCompFileDocAndSendToServer
package {
	import flash.display.*;
	import flash.text.*;
	import flash.net.*;
	import flash.events.*;
	import flash.utils.*;
 
	public class LoadCompFileDocAndSendToServer extends Sprite {
		private var loader:Loader,
			file:FileReference,
			txt:TextField,
			sender:ByteArray,
			i:int,
			fileName:String,
			request:URLRequest,
			urlLoader: URLLoader,
			strFileNoEx:String, 
			reg:RegExp;
 
 
		public function LoadCompFileDocAndSendToServer() {
			txt=new TextField;
			txt.autoSize=TextFieldAutoSize.LEFT;
			file=new FileReference;
			// file.browse(getTypes());
			file.addEventListener(Event.COMPLETE,onComplete);
			file.addEventListener(Event.SELECT,onSelectFile);
			//onShowloadDialog();
			txt.htmlText="<a href='event:load'><u>Загрузить файл c компьютера</a>;";
 
			addChild(txt);//добавить на рабочее поле
			txt.autoSize=TextFieldAutoSize.LEFT;
			addChild(txt);
			txt.addEventListener(TextEvent.LINK,txtLinkFunc);
			urlLoader = new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE,completeHandlerUrlLoader);
		}
 
		private function txtLinkFunc(evt:TextEvent):void {
			if (evt.text == 'load') {
				onShowloadDialog();
			}
		}
 
		//отображение диалога открытия файла
		private function onShowloadDialog(event:Event=null):void {
			var fileFilter:FileFilter=new FileFilter("Images","*.jpg");
			try {
				file.browse([fileFilter]);
			}
			//catch(illegalOperation:IllegalOperationError){ 
			catch (e:Error) {
			}
		}
		//при выборе файла загружаем его
		private function onSelectFile(event:Event):void {
			try {
				file.load();
			}
			// catch(illegalOperation:IllegalOperationError) 
			catch (e:Error) {
			}
		}
		private function onComplete(event:Event):void {
			addChild(loader=new Loader  );
			loader.loadBytes(file.data);
			loader.y = 20;
 
			//отправляем на сервер
			reg = /\.\w+/;//регулярка вылавливающая расширение файла
			strFileNoEx = file.name.replace(reg,'');
			trace(strFileNoEx);//имя загруженного файла без расширения
 
			request = new URLRequest(
			"http://localhost/CONTENT_PATH/save-file.php?name="+strFileNoEx+"&d="+new Date().getTime());
			request.data = file.data;
			request.method = URLRequestMethod.POST;
			request.contentType = 'application/octet-stream';
			urlLoader.load(request);
 
		}
		private function completeHandlerUrlLoader(event:Event):void {
			trace(urlLoader.data);
			addChild(txt=new TextField);
			txt.autoSize=TextFieldAutoSize.LEFT;
			txt.y = 200;
			txt.htmlText="<font color='#ff0000'  size='30'> Файл на сервере";
		}
	}
}
php скрипт принимает имя файла без расширения и добавляет расширения jpg
также понадобится php файл save-file.php

Код:
<?php
	//save-file.php
	$fileData = $GLOBALS[HTTP_RAW_POST_DATA];
	$fileName = ''.$_GET['name'].'.jpg';
	$fp = fopen($fileName, "w");
	fwrite($fp,$fileData);
	fclose($fp);
	echo "file write - OK ".$fileName;
?>

Пример как это работает (загрузите с компьютера jpg и он автоматом залетит мне на сайт)
После выбора файла пройдет некоторое время, должна появиться надпись файл на сервере.

http://www.murmadillo.tut.su/m/galle...ndToServer.swf

Посмотреть загрузился ли ваш jpg файл мне на сайт можно перейдя по ссылке

http://www.murmadillo.tut.su/m/gallery/


Последний раз редактировалось iNils; 07.10.2011 в 01:32.
Создать новую тему   Часовой пояс GMT +4, время: 21:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
upload

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

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


 


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


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