Ссылка Adobe специально указывает на это как на ограничение.
Вот примечание в функции file.upload в справочнике Adobe.
Примечание. Если вашему серверу требуется аутентификация пользователя, только SWF-файлы, запущенные в браузере, то есть с использованием плагина браузера или элемента управления ActiveX, могут предоставить диалоговое окно для запроса имени пользователя и пароля для аутентификации, и только для скачивания. При загрузке с использованием подключаемого модуля или элемента управления ActiveX или при загрузке и загрузке с использованием автономного или внешнего проигрывателя передача файла завершается неудачей.
нажмите здесь для полной справочной страницы для файла
Кто-нибудь мог обойти это ограничение. Одна мысль у меня была в том, чтобы использовать встроенную поддержку в AIR для Javascript и посмотреть, что работает. Кто-нибудь пробовал это? У кого-нибудь есть другие идеи?
Я также попробовал предлагаемое решение здесь , и оно не сработало. По словам опрашивающего на форуме, похоже, он тоже не работает. Вероятно, проблема вышеупомянутого ограничения / ограничения.
Я понимаю, как включить базовую аутентификацию в URLRequest, и это прекрасно работает для меня, если я публикую пары ключ / значение. Но когда я пытаюсь загрузить файл, он не работает. Он просто сидит там и не запускает никаких событий file.upload. Нет ошибок, нет прогресса. Любая помощь очень ценится.
Вот мой пример кода:
var sendVars:URLVariables = new URLVariables();
sendVars.prop1 = "filename" ;
var urlRequest:URLRequest = new URLRequest();
urlRequest.method = URLRequestMethod.POST ;
urlRequest.data = sendVars ;
var encoder:Base64Encoder = new Base64Encoder();
encoder.encode("user:pass");
var credsHeader:URLRequestHeader = new URLRequestHeader("Authorization", "Basic " + encoder.toString());
urlRequest.requestHeaders.push(credsHeader);
file = new File(url);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA , file_UploadCompleteDataHandler );
file.addEventListener( Event.OPEN, fileOpenHandler);
file.addEventListener(ProgressEvent.PROGRESS, fileProgressHandler);
file.addEventListener(Event.COMPLETE, file_CompleteHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, file_IOErrorHandler);
file.addEventListener(HTTPStatusEvent.HTTP_STATUS , file_HTTPStatusHandler);
file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, file_SecurityErrorHandler);
try {
// Start the file upload
file.upload(urlRequest, "primaryFile", false);
}
catch (error:Error) {
trace( "Unable to upload file." + file.name);
}