Загрузка файла с другими переменными в Actionscript 3 с использованием URLLoader? - PullRequest
0 голосов
/ 27 мая 2009

Я пытаюсь загрузить файл через URLLoader в Actionscript 3, я знаю, что это возможно, по крайней мере, в соответствии с документами, но я не могу понять это. Поэтому, если кто-то сделал это до того, как я хотел бы узнать, что я пропускаю, в частности, я не уверен насчет URLRequest и его свойства данных. Я знаю, что данные моего файла должны быть там, но я не знаю, как.

Вот очень элементарная форма кода, с которым я работаю:

//===============================================
public function sendRequest():void {
//===============================================

  var newFile:FileReference(); //this eventually gets data loaded to it before I make request
  var sendForm:URLLoader = new URLLoader();
  var urlString:String = "/proposal_request/?";
  var header:URLRequestHeader = new URLRequestHeader("Content-Disposition: attache[attachment]; filename=" + newFile.name);
  ...

  ...
  urlString += "variable=" + instance_name.text;
  urlString += "another_variable=" + another_instance_name.text;
  ...

  ...
  var requester:URLRequest = new URLRequest(urlString);
  requester.contentType = "multipart/form-data";
  requester.method = URLRequestMethod.POST;
  requester.requestHeaders.push(header);
  requester.data = newFile; //here's where I'm most confused, should this be encoded?
  ...

  ...
  sendForm.addEventListener(HTTPStatusEvent.HTTP_STATUS, responseStatus);
  sendForm.load(requester);

}

Ответы [ 2 ]

2 голосов
/ 27 мая 2009

Вы всегда можете пойти по этому пути - но вам действительно не нужно.

Класс FileReference предоставляет вам простой способ загрузки файла: метод upload () .

public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void

После того, как ваш FileReference содержит некоторые данные, просто позвоните upload , передав URLRequest и, необязательно, строку поля данных, с некоторой дополнительной информацией для сервера, и логическое значение, которое (де) активирует тестовую загрузку: если размер вашего файла превышает 10 КБ, Flash Player попытается отправить 0-байтовый файл в качестве теста подключения перед загрузкой реального файла.

После этого вы можете просто слушать события progress , complete и uploadDataComplete , чтобы отслеживать загрузку.

Справочник по Adobe AS3 в FileReference.upload ()

0 голосов
/ 03 октября 2009

Вышесказанное хорошо, если вы не изменяете данные файла после просмотра с помощью FileReference. Предположим, вы изменили размер изображения или обрезали его перед загрузкой, как вы будете загружать файл с помощью FileReference.upload.

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

Существует ли способ показать промежуточный прогресс загрузки изображения для изображений с измененным размером, аналогичный показанному компонентом FileReference.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...