0
我设计了一个p2p apliccation,可以在没有服务器的情况下传输文件。一切正常。我可以在同伴之间传输文件。但事实证明,如果文件大小大于16mb(因为我可以传输的最大文件大小为15810kb),它不会转移到同行。这是我使用的代码:actionscript 3.0 - p2p文件共享问题(最大上传文件大小)
private function browseFile(farIds:String = ""):void {
fIds = farIds;
file = new FileReference();
file.addEventListener(Event.SELECT, selectHandler);
file.browse();
}
private function selectHandler(event:Event):void {
var btn = getChild("browseFile_" + fIds)
if (btn && btn.alpha) btn.alpha = 0.5;
file = FileReference(event.target);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.load();
}
private function progressHandler(event:ProgressEvent):void{
ExternalInterface.call("fileLoadProgress", event.target.name, event.bytesTotal, event.bytesLoaded)
}
private function completeHandler(event:Event):void{
ExternalInterface.call("onFileLoaded")
var fileData:Object = new Object();
fileData.file = event.target.data
fileData.name = event.target.name;
var btn = getChild("browseFile_" + fIds)
if (btn && btn.alpha) btn.alpha = 1;
sendSomeData(fileData, fIds, "receiveFile");
}
public function receiveFile(info:Object, peerID:String):void{
ExternalInterface.call("alert", "receivedFile")
}
private function sendSomeData(data,farIds:String,func:String = "receiveSomeData"):void{
for(var id:String in sendStreams){
sendStreams[id].send(func, data, myPeerID);
}
}
你能告诉我如何允许我传输任何大小的文件吗?
感谢您的帮助!
是的,它似乎是解决问题的唯一方法,但我怎样才能拆分文件,我怎样才能加入它的部分? – SuperYegorius 2013-05-08 22:55:05
您可以使用'ByteArray'完成所有工作:将'Object'转换为'ByteArray'(使用'ByteArray.writeObject'),分成几个ByteArray并将它们连接回一个ByteArray(使用ByteArrat。 readBytes'和'ByteArray.writeBytes'),然后将结果解码成一个Object(使用'ByteArray.readObject')。 – 2013-05-08 23:47:34