Andy E, bunu yapmanın HTML tabanlı bir yolu olmadığı konusunda haklı *; ancak Flash kullanmak istiyorsanız, bunu yapabilirsiniz. Aşağıdakiler, Flash'ın yüklü olduğu sistemlerde güvenilir şekilde çalışır. Uygulamanızın iPhone'da çalışması gerekiyorsa, o zaman elbette yedek HTML tabanlı bir çözüme ihtiyacınız olacak.
* ( Güncelleme 4/22/2013: HTML artık bunu HTML5'te desteklemektedir. Diğer yanıtlara bakın.)
Flash yüklemenin başka avantajları da vardır - Flash, büyük bir dosyanın yüklenmesi ilerledikçe size bir ilerleme çubuğu gösterme yeteneği sağlar. (Bu konuda yanılıyor da olsam da arka planda Flash kullanarak Gmail'in bunu yaptığından oldukça eminim.)
Aşağıda, kullanıcının bir dosya seçmesine ve ardından görüntülemesine olanak tanıyan örnek bir Flex 4 uygulaması verilmiştir:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init()">
<fx:Declarations>
</fx:Declarations>
<s:Button x="10" y="10" label="Choose file..." click="showFilePicker()" />
<mx:Image id="myImage" x="9" y="44"/>
<fx:Script>
<![CDATA[
private var fr:FileReference = new FileReference();
// Called when the app starts.
private function init():void
{
// Set up event handlers.
fr.addEventListener(Event.SELECT, onSelect);
fr.addEventListener(Event.COMPLETE, onComplete);
}
// Called when the user clicks "Choose file..."
private function showFilePicker():void
{
fr.browse();
}
// Called when fr.browse() dispatches Event.SELECT to indicate
// that the user has picked a file.
private function onSelect(e:Event):void
{
fr.load(); // start reading the file
}
// Called when fr.load() dispatches Event.COMPLETE to indicate
// that the file has finished loading.
private function onComplete(e:Event):void
{
myImage.data = fr.data; // load the file's data into the Image
}
]]>
</fx:Script>
</s:Application>