| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 371
| ByteArray splitten
Hallo, ich habe da ein Upload script geschrieben womit man Bilder per Drag and Drop in ein Feld zieht und Flex einem das an ein PHP Script schickt und hochlädt. So ich habe das mir so gedacht, da man ja nie weiß wie groß ein Bild/datei sein kann, splitte ich die Datei auf und schicke sie in Stücke an PHP, soweit so gut ich habe die Datei in ein ByteArray umgewandelt und diese enthält auch Daten. Nun möchte ich das so machen das ich das ByteArray z.b. in 40kb stücken an PHP sende und mir PHP auf der anderen Seite die Datei wieder zusammen setzt. Das zusammen setzen auf PHP's Seite ist kein Problem das läuft ohne Probleme nur wie Splitte ich das ByteArray in 40kb Teile?! Hier mal mein Versuch wie ich es versucht habe: Code:
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Image;
import mx.events.FlexEvent;
import mx.managers.DragManager;
import mx.rpc.CallResponder;
import mx.rpc.events.ResultEvent;
private var UploadCall:CallResponder = new CallResponder();
private var UploadCall2:CallResponder = new CallResponder();
private var Channel_1:Boolean = true;
private var Channel_2:Boolean = true;
private var i:int = 0;
private var z2:int = 0;
private var x2:int = 0;
private var d:int = 0;
private var maxSize:uint;
private var GlobalFile:File;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragIn);
this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDrop);
}
public function onDragIn(event:NativeDragEvent):void{
DragManager.acceptDragDrop(this);
}
public function onDrop(event:NativeDragEvent):void{
this.removeAllElements();
var dropfiles:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
for each(var file:File in dropfiles){
switch(file.extension)
{
case 'ai':
case 'pdf':
case 'psd':
case 'gif':
case 'jpg':
case 'png':
UploadCall.addEventListener(ResultEvent.RESULT,resultUpload);
UploadCall2.addEventListener(ResultEvent.RESULT,resultUpload2);
var ba:ByteArray = new ByteArray();
var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);
stream.readBytes(ba);
stream.close();
GlobalFile = file;
maxSize = ba.bytesAvailable;
allUploaded(ba.bytesAvailable);
//allUploaded(file,file.size);
break;
default:
trace(file.extension);
break;
}
}
}
private function resultUpload(event:ResultEvent):void{
Channel_1 = true;
trace("Channel 1 wieder auf true");
if(i < maxSize){
allUploaded(maxSize);
}
}
private function resultUpload2(event:ResultEvent):void{
Channel_2 = true;
trace("Channel 2 wieder auf true");
if(i < maxSize){
allUploaded(maxSize);
}
}
protected function allUploaded(size:uint):void{
var bz:ByteArray = new ByteArray();
var inStream:FileStream = new FileStream();
d = i + (20 * 1024);
if(i < size){
if(d < size){
++x2;
inStream.open(GlobalFile, FileMode.READ);
inStream.readBytes(bz,i,d);
inStream.close();
trace("Erstellen: i: "+i+" und d: "+d);
}else{
++x2;
inStream.open(GlobalFile, FileMode.READ);
inStream.readBytes(bz,i,size);
inStream.close();
trace("Ende: i: "+i+" und size: "+size);
}
i = i + (20 * 1024);
}
if(Channel_1 == true){
UploadCall.token = UploadData.upload(GlobalFile.name,bz);
Channel_1 = false;
}/* else if(Channel_2 == true){
UploadCall2.token = UploadData.upload(file.name,bz);
Channel_2 = false;
} */
}
]]>
</fx:Script> |
| | |
| | #2 (permalink) | |
| Neuer User Registriert seit: Mar 2009 Ort: Braunschweig
Beiträge: 178
| Zitat:
So wie ich das lese, baut er immer größere Stücke mit wachsendem Offset in 'bz'. Ich sehe den Fehler jedenfalls in den readBytes-Aufrufen: Code: //inStream.readBytes(bz,i,d);
inStream.position = i;
inStream.readBytes(bz,0,20*1024); Code: //inStream.readBytes(bz,i,size);
inStream.position = i;
inStream.readBytes(bz,0,size-i); Grüße, Matthias Kievernagel | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| ByteArray to Bitmapdata | Jochi | ActionScript 3 | 3 | 22-02-2010 17:45 |
| ByteArray speichern | Jochi | ActionScript 3 | 5 | 17-02-2010 22:02 |
| ByteArray auslesen | tobee | ActionScript 3 | 1 | 03-12-2009 09:11 |
| ByteArray in SOAP | Bartolomé | ActionScript 3 | 8 | 25-07-2009 17:07 |
| ByteArray aus NetStream? | pink! | ActionScript 3 | 0 | 26-03-2009 16:56 |