0
나는 서버없이 파일을 전송할 수있는 P2P 응용 프로그램을 설계했습니다. 모든 것이 잘 작동합니다. 동료간에 파일을 전송할 수 있습니다. 하지만 파일 크기가 16MB보다 크다면 (크기가 15810KB 인 전송할 수있는 파일 중 가장 큰 파일 크기) 그것이 피어로 전송되지는 않습니다. 이것은 내가 사용하고있는 코드입니다 :actionscript 3.0 - p2p filesharing 문제 (최대 업로드 파일 크기)
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
'ByteArray'를 사용하여'Object'를 (ByteArray.writeObject'를 사용하여) 변환하고, 여러 ByteArray로 분할 한 다음 ByteArray를 사용하여 하나의 ByteArray로 다시 결합 할 수 있습니다. readBytes'와'ByteArray.writeBytes') 그리고 결과를'Object'로 디코딩합니다 (ByteArray.readObject를 사용하여). –