Функция загрузки файлов не работает в Ubuntu - PullRequest
2 голосов
/ 04 марта 2011

Я создал приложение на базе Flex + PHP, в котором есть функция для загрузки изображения на сервер.Приложение отлично загружает картинку, если работает на Windows.Но в Ubuntu файл вообще не загружается.Может ли это быть проблема, связанная с разрешениями?

Вот журнал, который ведется при загрузке файла:

Uploading 5408_1243356204478_1246540615_30751024_3730562_n.jpg...
File opened
File upload in progress (349 of 31340)
File upload in progress (349 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
File upload in progress (31340 of 31340)
HTTP error occured - 
HTTP IO error occured - 

Кроме того, я пробовал это приложение на машине OpenSuSE, и загрузка только что сработалатам все нормально.

Путь моего приложения: / var / www / bin-release Разрешения владельца / var / www / bin-release / *

,group = baltusaj, файлы www-данных, каталоги = 777,777

Я также добавил baltusaj в группу www-data в / etc / group

Ошибка ввода-вывода HTTP все еще существует,танцы вокруг моих нервов.:(

Ответы [ 3 ]

1 голос
/ 09 марта 2011

Я столкнулся с подобной проблемой в Flex + Java в браузере Mac Safari. Я исправил это, используя urlRequestVariable и изменив ответ от сервисов. Надеюсь, что это может помочь вам.

Решение : * 1. Создайте переменную urlRequest и установите URL для загрузки файла. *

Например, var request: URLRequest = new URLRequest (); request.url = http://localhost:8080/projectContext/upload/";

2. Используйте URLVariables для установки данных запроса [Теперь интерфейс REST и userObject - это параметр запроса]

var sendVars:URLVariables=new URLVariables(); 
            var user:Object = new Object; 
            user.firstName ="XXX"; 
            user.lastName="YYY"; 
            sendVars.userObject = user; request.data=sendVars;

            var _refUploadFile:FileReference=new FileReference(); 
            _refUploadFile=obj.file;
            _refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);
            _refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError); 
            _refUploadFile.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError); 
            _refUploadFile.upload(request, "file", true); 
            _refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete);

Из сервисов, которые я пытался вернуть объект ответа, и метод onUploadComplete никогда не вызывался, хотя файл был успешно загружен. Так что при возврате строки из службы будет вызываться метод onUploadComplete.

1 голос
/ 09 марта 2011

Я бы порекомендовал запустить Wireshark со стороны клиента для захвата сетевого трафика, так как файл был загружен.Это должно обеспечить эффективное представление о том, что сервер фактически делает между двумя установками.

http://www.wireshark.org/

0 голосов
/ 09 марта 2011

Спасибо всем за попытку помочь. :)

Я заменил следующую строку

public var uploadFile:String = "upload.php"; 

с

public var uploadFile:String = "http://localhost/bin-release/upload.php"; 

, которая заставила приложение работать на Ubuntu. Хотя он работал и в OpenSuSE, используя просто «upload.php».

...