使用AS3&;将ByteArray上载到服务器时的进度事件;PHP

使用AS3&;将ByteArray上载到服务器时的进度事件;PHP,php,actionscript-3,Php,Actionscript 3,我目前正在创建一系列as3/PHP类,用于上传-编码+下载图像 有人知道在向服务器发布ByteArray时是否有方法报告进度吗 ProgressEvent不起作用- 至少在上传ByteArray的情况下不是这样- 它只在上传后报告进度 这是我正在使用的代码的精简版本 urlLoader=new URLLoader; urlLoader.dataFormat=URLLoaderDataFormat.BINARY; urlLoader.addEventListener(ProgressEvent.P

我目前正在创建一系列as3/PHP类,用于上传-编码+下载图像

有人知道在向服务器发布ByteArray时是否有方法报告进度吗

ProgressEvent不起作用- 至少在上传ByteArray的情况下不是这样-
它只在上传后报告进度

这是我正在使用的代码的精简版本

urlLoader=new URLLoader;
urlLoader.dataFormat=URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
//          
function progressHandler(e:ProgressEvent):void {
              trace(e.bytesLoaded/e.bytesTotal);

}

谢谢-MW

您是否使用URLLoader发送它?您应该能够向其中添加ProgressEvent侦听器

编辑:您可能需要从PHP发回数据,请参见此处:


您是否使用URL加载程序发送它?您应该能够向其中添加ProgressEvent侦听器

编辑:您可能需要从PHP发回数据,请参见此处:


URLLoader虽然支持向服务器发送数据,但它是为下载数据而设计的。ProgressEvents仅在从服务器接收数据时触发。在上载的情况下,这意味着所有ProgressEvents都将在上载完成后发生

如果文件不在用户的硬盘上,您可能可以使用该类将其上载到服务器,这样会随着上载的进行(而不仅仅是下载)发送ProgressEvents


此外,如果您使用的是Flash Player 10,则可以将用户计算机上的文件直接放入Flash中,对其进行操作,然后在不涉及服务器的情况下再次退出(或仅在Flash中使用)。但是,如果您正在将图像编码为Flash(或第三方ActionScript库)无法理解的格式,则这可能不是一个选项。

URLLoader虽然支持向服务器发送数据,但设计用于下载数据。ProgressEvents仅在从服务器接收数据时触发。在上载的情况下,这意味着所有ProgressEvents都将在上载完成后发生

如果文件不在用户的硬盘上,您可能可以使用该类将其上载到服务器,这样会随着上载的进行(而不仅仅是下载)发送ProgressEvents


此外,如果您使用的是Flash Player 10,则可以将用户计算机上的文件直接放入Flash中,对其进行操作,然后在不涉及服务器的情况下再次退出(或仅在Flash中使用)。但是,如果您将图像编码为Flash(或第三方ActionScript库)无法理解的格式,则这可能不是一个选项。

您应该查看此ActionScript 3库:


它可能会解决你的问题。我目前正在一个项目中使用它,它非常棒。

您应该查看这个ActionScript 3库:


它可能会解决你的问题。我目前正在一个项目中使用它,它非常棒。

感谢您的回复-我正在构建的类集的一部分使用FileReference作为选项。所以(原始)上传、下载、编码和文件引用(我称之为快照)都有进度事件——我只是不知道如何将一个事件添加到ByteArray上传中。作为一种解决方法,您可以要求服务器提供一定数量的已知大小的虚拟信息,计算传输需要多长时间,并以此方式估计用户网络的速度。使用此估计值,您可以为ByteArray上载提供预计时间估计值。感谢您的回复-我正在构建的类集的一部分使用FileReference作为选项。所以(原始)上传、下载、编码和文件引用(我称之为快照)都有进度事件——我只是不知道如何将一个事件添加到ByteArray上传中。作为一种解决方法,您可以要求服务器提供一定数量的已知大小的虚拟信息,计算传输需要多长时间,并以此方式估计用户网络的速度。使用此估计值,您可以为ByteArray upload.hmm提供一个预计时间估计值,该链接显示了如何在JavaScript中执行此操作,现在,如果我只能在Actionscript中找到如何执行此操作的话。AS3实现本质上是相同的,使用URLLoader ping getprogress.php文件不幸的是,我正在使用的宿主(示例网格服务器)无法支持PHP-APC。感谢您的帮助-我想我必须切换主机才能找到-有没有人用这种技术实现了一个进度事件?嗯,这个链接展示了如何用JavaScript实现它,现在如果我只能在Actionscript中找到如何实现它的话。AS3实现基本上是一样的,使用URLLoader来ping一个getprogress.php文件是我正在使用的主机(Mediatemple网格服务器)无法支持PHP-APC。感谢您的帮助-我想我必须切换主机才能找到-有人使用此技术取得了进展事件吗?请注意,如果您在基于web的应用程序上使用它,您需要查看套接字策略文件服务器。请注意,如果您在基于web的应用程序上使用它,您需要查看套接字策略文件服务器冰冷的文件服务器。