我创建了视频下载器AIR应用程序。
哪个会将远程文件下载到本地。
我写下面的代码来下载文件。
var urlString:String = REMOTE_URL;
var urlReq:URLRequest = new URLRequest(urlString);
urlStream.addEventListener(Event.COMPLETE, loaded);
urlStream.addEventListener(ProgressEvent.PROGRESS, writeFile);
urlStream.addEventListener(IOErrorEvent.IO_ERROR, onIoError);
var file:File = File.desktopDirectory.resolvePath("D:/test.mp4");
fileStream.openAsync(file, FileMode.WRITE);
urlStream.load(urlReq);
function writeFile(event:ProgressEvent):void
{
if (urlStream.bytesAvailable > 51200)
{
progBar.setProgress(event.bytesLoaded,event.bytesTotal);
var data:ByteArray = new ByteArray();
urlStream.readBytes(data, 0, urlStream.bytesAvailable);
fileStream.writeBytes(data, 0, data.length);
}
}
function onIoError(event:IOErrorEvent):void
{
trace("IO Error");
}
function loaded(event:Event):void {}
它会成功下载一些文件。但是从一些网址上它不会下载文件。它只会返回event.bytesTotal = 162 bytes
。即使它可用超过200 MB。
当我使用content-type
听众检查HTTPStatusEvent.HTTP_RESPONSE_STATUS
时,它会给text/html; charset=utf-8
我在浏览器中打开该URL并尝试保存,然后将成功下载。
希望有人有解决方案。 谢谢。