2013-02-13 3 views
2

У меня есть простой flex приложение, которое может загружать локальные файлы. Это простая кнопка, и при щелчке появляется диалоговое окно с файлом.развертывание Flex приложения на сервере проблема

Выбранные файлы затем обрабатываются скриптом PHP и отлично работают на моей локальной машине. Когда я пытаюсь переместить проект flex-debug или flex-release на удаленный сервер, функция загрузки больше не работает.

Если проверяется сеть, выполняется POST, но по некоторым причинам он имеет статус ожидающего ответа в течение 1 минуты, но после успешного завершения работы, как и ожидалось, файлы не загружаются.

// file is a file:FileReference object 
var uploadURL:URLRequest = new URLRequest(); 
var params:URLVariables = new URLVariables(); 
file.addEventListener(Event.COMPLETE, uploadComplete); 
params.maxSize = maxSize; 
uploadURL.method = URLRequestMethod.POST; 
uploadURL.data = params; 
uploadURL.url = uploadScript; 
file.upload(uploadURL, IMAGE_FIELD); 
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadDataComplete); 
file.addEventListener(Event.COMPLETE, uploadComplete);  

Edit: Когда я пытаюсь переместить мою папку отладки сгенерированный из Flash Builder 4.5 из C: \ WWW ко второму локальному хосту на D: \ WWW скрипт загрузки больше не работает. Возможно, я пропустил некоторые варианты развертывания и только вижу его на C: \ www, где находится мой .mxml.

Редактировать2: На удаленном сервере возникла проблема, т. Е. Перемещение функции загружаемого файла работало неправильно. Проблема была связана с скриптом upload.php, а не с Flex, спасибо за помощь и извините за беспокойство.

+0

Вы загрузку на другой домен, чем та швейцарские франки размещенные на? Тем не менее, я думаю, что использование приложения Flex (и загрузка пользователя 300 + Kb) является излишним для простой кнопки загрузки. – RIAstar

+1

Чтобы загрузить файл, вы должны использовать FileReference.upload() http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html#upload%28%29. Мне непонятно, из кода, который вы предоставили, что вы используете. – JeffryHouser

+0

Вы проверили безопасность/разрешения папки? Ошибка загрузки чаще всего возникает в связи с проблемой записи. Кроме того, размер файла также является препятствием, но, я думаю, вы уже проверили это, как кто-то уже указал его. –

ответ

3

Попробуйте использовать:

var request : URLRequest = new URLRequest("http://{you_site_domain}/upload.php"); 

и проверить

loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, ioErrorHandler); 
+0

Flash должен работать нормально с относительными URL-адресами; не нужно указывать полное доменное имя. – JeffryHouser

+0

@Flextras: да, но поскольку он указывает внутри своего обновления, он использует пути к «c:» frive ... который уже не является относительным. –

1

Есть несколько моментов, я думаю, вы должны чек-

1) Путь службы вы используете, перепроверить его снова работает в браузере адресной строки. 2) Проверьте правильность доступа к папке пути загрузки.

+0

Можете ли вы предоставить свой сервис? –

+0

Flex может взаимодействует с PHP только 3 способами - 1) HTTPService 2) WebService 3) Remoting (AMFPHP или любой другой) Так какой из них вы используете и как вы используете? –

1

1) обеспечивают путь обслуживания или подобный пример.

2) Насколько велик загруженный файл, вы протестированы с под 2Mb (по умолчанию php.ini позволяет просто малого размера файла)

3) Что такое точное сообщение об ошибке, что вы получите?

4) Вы можете прослушивать ProgressEvent, возможно, ваша загрузка идет медленно ... и вы используете большой файл.

5) слушать IOErrorEven.IO_ERROR и SecurityErrorEvent.SECURITY_ERROR

+0

То, что я хотел спросить на 1), было и uploadURL.url = uploadScript; пример. Также вы можете проверить свои журналы php на сервере? –

Смежные вопросы