0

我正在尝试使用FileReference课程将文件上传到服务器。该文件是在运行时编码的 mp3,没有将他保存在本地硬盘上。

是否有可能以某种方式将 mp3Encoder 放入其中FileReference

谢谢

4

1 回答 1

1

假设您将 mp3 作为 ByteArray (如果您没有将它保存到磁盘,不确定它在运行时会如何存在),您可以使用 URLLoader 类,如下所示:

var scriptRequest:URLRequest = new URLRequest("PATH_TO_YOUR_UPLOAD_SCRIPT");
var scriptLoader:URLLoader = new URLLoader();
var scriptVars:URLVariables = new URLVariables();

scriptLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);

scriptVars.var1 = MP3_AS_BYTE_ARRAY;

scriptRequest.method = URLRequestMethod.POST;
scriptRequest.data = scriptVars;

scriptLoader.load(scriptRequest);

function handleLoadSuccessful($evt:Event):void
{
    trace("Message sent.");
}

function handleLoadError($evt:IOErrorEvent):void
{
    trace("Message failed.");
}

然后在服务器上,您只需将流保存到文件并为其提供正确的 mp3 mime 类型。

有一个不错的教程,这个例子是从中改编的,在这里:http ://evolve.reintroducing.com/2008/01/27/as2-to-as3/as2-%E2%86%92-as3-loadvars-as3 -相等的/

如果您需要将请求作为 multipart/form-data 发送(所以它似乎是一个附件),这里有一个很好的例子:http: //marstonstudio.com/2007/10/19/how-to -采取-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/

于 2012-09-03T13:44:20.217 回答