Something like this?
private function dropped(ev:DragEvent):void{
ev.preventDefault();
var fileList:FileList = ev.dataTransfer.files;
dispatchEvent(new ValueEvent("filesAvailable",fileList));
}
The code from FileLoader is relevant for getting the binary content of a file:
public function load():void
{
COMPILE::SWF
{
fileModel.fileReference.addEventListener(Event.COMPLETE, fileLoadHandler);
fileModel.fileReference.load();
}
COMPILE::JS
{
var reader:FileReader = new FileReader();
goog.events.listen(reader, 'load',
fileLoadHandler);
reader.readAsArrayBuffer(fileModel.fileReference);
}
}
COMPILE::SWF
protected function
fileLoadHandler(event:flash.events.Event):void
{
fileModel.fileReference.removeEventListener(Event.COMPLETE, fileLoadHandler);
fileModel.fileContent = new
BinaryData(fileModel.fileReference.data);
}
> On Jul 11, 2023, at 7:26 PM, [email protected] wrote:
>
> Hi All,
>
> I struggle with drag and drop and upload file to a remote server.
>
> I can upload file using FileReference (_fr), this is working fine :
>
> private function ev_SelectedFile(e:Event):void {
> var url:URLRequest = new
> URLRequest("http://myserver.com/upload_file.php")
> url.method = "POST";
> trace ("selected1:" + (e.currentTarget as
> FileReference).fileReference.name);
> trace ("selected2:" + (e.currentTarget as
> FileReference).fileReference.size); _fr.upload(url);
> }
>
> Now, instead to be _fr.browse(), I want the source of upload to be a drag and
> drop file.
> I have an event working using jewel DropZone when I drop a file, but how to
> setup FileReference ? Here is my buggy code :
>
> private function ev_dropped(e:DroppedEvent):void {
>
> trace ("dropped");
> //_fr.fileReference = new File((e.data[0] as
> DroppedModel).fileData.array,"test.mp3");
> _fr.fileContent = (e.data[0] as DroppedModel).fileData;
> var url:URLRequest = new
> URLRequest("http://myserver.com/upload_file.php")
> url.method = "POST";
> _fr.upload(url),
> }
>
> Thank in advance for help
> Regards
> Fred