![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 11
|
Добрый день!
Да, эта тема один раз неявно всплывала на просторах сего замечательного ресурса, однако есть желание расставить точки над i =) Процесс следующий:
Вариант с "просто загрузкой" отлично решает FileReference, который в 10й версии плеера обзавелся еще и [read-only] полем data, который позволяет посмотреть визуально, что же пользователь загрузил во флешку, перед отправкой на сервер. Как-то вот так: * Однако, вся проблема в том, что поле-то это read-only Т.е., если сделать какую-то манипуляцию с картинкой, скажем, повернуть ее - то эти изменения никак не отразить в передаваемом файле.* Собственно, как я понимаю, поля типа filter никак не влияют непосредственно на изображение, а только изменяют представление DisplayObject'а? Тогда какой подход выбрать к изменению изображения? И к его передаче на сервер =) |
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
А что у image.source не идёт получить что в него загружено?
Например в Delphi можно украсть всё с Canvas. Конечно это рогатенько выглядит, но, как вариант. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это ByteArray, вообще-то.
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 11
|
Ну да, но проблема-то в том, как модифицировать изображения, подгруженные в клиент с помощью FileReference и измененную версию снова в него подсунуть, чтоб с помощью метода upload загрузить это хозяйство на сервер.
Тут я разделяю 2 концептуальных вопроса:1. Как модифицировать изображение, имея его в массиве байтов. 2. Как модифицированное изображение "запихнуть" обратно в FileReference, чтобы отправить его. По п.1. - есть в объекте Image, поле transform.matrix, однако, это влияет только на отображение, а не на саму картинку (т.е. последовательность байт) По п.2. - если даже как-то изменить изображение, то непонятно, как его его загрузить в FileReference. Ведь, как уже говорилось, поле data - только на чтение. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
data — это ссылка на ByteArray, вот его и изменяйте, как вам угодно.
|
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Цитата:
![]() Не довелось ещё пощупать, что и как. Но суть та же. Получить байты и с ними работать. Цитата:
![]() |
|
|||||
var fileRef:FileReference = new FileReference();
var date:Date = new Date();
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
try {
var success:Boolean = fileRef.browse();
} catch (error:Error) {
trace("Unable to browse for files.");
}
function selectHandler(event:Event):void {
var request:URLRequest = new URLRequest("http://www.сайт.мой.ру/upload.php?="+date.getTime().toString());
try {
fileRef.upload(request);
} catch (error:Error) {
trace("Unable to upload file.");
}
}
function completeHandler(event:Event):void {
trace("uploaded");
txt.text = "uploaded";
}
<?php
$MAXIMUM_FILESIZE = 1024 * 200; // 200KB
$MAXIMUM_FILE_COUNT = 10; // keep maximum 10 files on server
//echo exif_imagetype($_FILES['Filedata']);
if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE)
{
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./images/".$_FILES['Filedata']['name']);
}
?>
В эту папку будут сваливаться файлы Не рекомендую использовать этот php скрипт, тк. он полностью губит ваш сайт Ведь закачать можно любой файл, в том числе и php файл, нужно допилить php скрипт, что бы он принимал только файлы рисунков. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 11
|
Цитата:
Дык, круто Только 2 "но": это действительно ссылка, и в процессе дебага, действительно видно, что, скажем, применение метода clear, стирает этот массив. Но файл-то в итоге заливается! Изменения в нем - побоку. А задача именно - в изменении изображения перед отправкой. Как организовать просто отправку файла - это я знаю, спасибо =)На сервере стоит PHP, написан скрипт, принимающий файлы, посредством POST-запроса. Но это не важно. Важно узнать как изменить изображение и отправить уже измененный экземпляр. Alex Lexcuk, спасибо за код, но это уже давно реализовано, тема не о том ![]() Почему-то мне кажется, что задача уже реализована не один раз... к сожалению, нигде не найти информации ![]() |
|
|||||
|
>>как сохранить bytearray flex php - это подсказанька :о))
//SaveByteArrayServerDoc
package {
import flash.display.*;
import flash.text.*;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
public class SaveByteArrayServerDoc extends Sprite {
private var ba:ByteArray,
fileName:String,
request:URLRequest,
loader: URLLoader;
public function SaveByteArrayServerDoc():void {
ba = new ByteArray();
fileName = "text-file.txt";
request = new URLRequest(
"http://localhost/CONTENT_PATH/save-file.php?name="+fileName+"&d="+new Date().getTime());
ba.writeUTFBytes("йцукенгшщзхъфывапролджэ\ячсмитьбю.qwertyuiplkjhgfdsazxcvbnm,");
request.data = ba;
request.method = URLRequestMethod.POST;
request.contentType = 'application/octet-stream';
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE,completeHandler);
loader.load(request);
}
private function completeHandler(event:Event):void {
trace(loader.data);
}
}
}
/*
<?php
//save-file.php
$fileData = $GLOBALS[HTTP_RAW_POST_DATA];
$fileName = ''.$_GET['name'].'.txt';
$fp = fopen($fileName, "w");
fwrite($fp,$fileData);
fclose($fp);
echo "file write - OK ".$fileName;
?>
*/
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:44. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| image , resize , rotate , upload |
|
|