Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Сохранение файла из флэшки на веб-сервере
Flash Zone Forum > Macromedia Flash > Общие вопросы
Antoxer_92
Столкнулся с такой проблемой нужно мне файлик(например фотку) отправить из флэшки на серевер и сохранить его там!!!

Так вот конкретнее:

Это я во флэше так отправляя файл на локалхост:

var f:FileReference= new FileReference();
btn.addEventListener(MouseEvent.CLICK,onClick);
f.addEventListener(Event.SELECT,onSelect);

function onClick(e:MouseEvent):void
{
f.browse();
}


function onSelect(e:Event):void
{
f.upload(new URLRequest("http://тут мой айпшник/test.php"));
}

ТАк вот как обработать эту посылку в PHP скрипте не знаю!!!

конкретно:
1) Как принять этот файл в PHP скрипте!!!
2) Как записать его на этом же веб сервере

Подскажите плиз!!! На форуме что-то находил, но там конкретно не описано как все делать!!!
MustLive
Цитата
ТАк вот как обработать эту посылку в PHP скрипте не знаю!!!

Antoxer_92

Тебе нужно лишь сделать php-скрипт аплоадер. Примеров кода загрузчиков файлов (в том числе на PHP) много - в Сети полно опенсорных программ такого рода. Замечу, что в PHP аплоадер сделать гораздо проще, чем в том же Perl, т.к. есть встроенная поддержка аплоадинга. В Perl же нужно или полностью самому писать загрузчик с обработкой потока загрузки файла (или файлов), или же использовать модуль CGI, который сделает часть работы (обработает процесс загрузки и нужно будет лишь файлы сохранить на сервере).

Так что поищи себе подобные php-скрипты. Возьми один такой загрузчик и размести на сервере (назови его нужным образом - в коде ты указал test.php, хотя логичнее будет upload.php), рядом с флешкой. И протестируй их работу, при этом заранее создав папку для загрузки файлов и установив ей права на запись (или же указав это в коде скрипта). При загрузке файл размещается во временной папке и тебе нужно будет произвести запись файла в нужное место на веб сервере (в папку с установленными правами) командой move_uploaded_file.

Я сам давно создал такой аплоадер на PHP - MustLive Uploader, так что при желании можешь использовать его. Только помни - загрузчики представляют собой большую дыру в безопасности сайта. И нужно добавлять надёжные защитные механизмы в загрузчик (и проводить его аудит), чтобы через него не взломали сайт. К примеру, мой компактный аплоадер предназначен именно для использования его для атаки на сайт smile.gif (во время аудита или пентеста). Так что серьёзно обдумай размещение скрипта загрузчика у себя на сайте.
Antoxer_92
MustLive, спасибо за uploader!!!! smile.gif

Насчет безопасности и аудита буду думать попозже, нужно сначала написать приложение до конца!!!

Но я обязательно этим займусь после написания приложения!!!!

А по части AS 3.0 у меня все правильно?

Я посмотрел, у тябя в php скрипте файл грузится из глобального массива POST!!! При отправки из флэша мне нужно указывать "method" = POST?

И можно ли при отправки файла послать ещё какие нибудь данные в php, например пароль данного приложения, что бы php принимал файлы только от этотго приложения!!!?????
MustLive
Antoxer_92, всегда пожалуйста.

Цитата
Насчет безопасности и аудита буду думать попозже, нужно сначала написать приложение до конца!!!

Это ты делай на локальном веб сервере (localhost). Мой php-скрипт аплоадер, или любой другой аплоадер, что ты найдёшь в Сети - это уже готовые веб приложения (написанные до конца). И их в чистом виде опасно размещать на сайте - любой загрузчик без ограничений нежелательно размещать на сайте.

Ибо как только его найдут, то взломают сайт. Поэтому аудитом веб приложений на сайте (и всего сайта в целом) стоит заниматься как можно раньше wink.gif. Так что на публичном веб сервере такие скрипты не держи, только на локалхосте. И лишь сделав ограничения в аплоадере (обезопасив его) и желательно проведя его аудит, можешь выкладывать на публичном веб сайте.

Цитата
Я посмотрел, у тябя в php скрипте файл грузится из глобального массива POST!!! При отправки из флэша мне нужно указывать "method" = POST?

Так и есть - файлы на сервер передаются исключительно методом POST. Поэтому, что при передаче файла через HTML-форму, что через флеш - указывай именно метод POST.

Конечно, можно передавать любые данные вместе с файлом. Как это делать - читай в документации по PHP и смотри в примерах кода (в том числе в примерах кода аплоадеров). В моей коде это показано - я передаю и принимаю скрытый параметр upload для указания начала процесса загрузки файла. Точно также можно передавать любые данные. При этом передача данных (особенно паролей) должна быть максимально обезопасена. В частности, пароли никогда не держи в флешках - их декомпилят и достанут пароли - это типичная ошибка флеш девелоперов, которую я встречал не раз (как и все те ошибки допускающие веб девелоперы, что приводят к тем миллионам и миллиардам дыр, суммарно, имеющих место на подавляющем большинстве веб сайтов в Интернете).
Русская версия IP.Board © 2001-2014 IPS, Inc.