Deprecated: Assigning the return value of new by reference is deprecated in /var/www/omflash.dk/public_html/wp-includes/cache.php on line 33

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/omflash.dk/public_html/wp-content/plugins/sem-subscribe-me2/sem-subscribe-me.php on line 511

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_query_vars() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_posts_where() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_posts_join() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_tag_templates() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1329
File upload i Flash aka FileReference - omFlash();
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_add_ajax_javascript() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1329

File upload i Flash aka FileReference


Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_the_content_filter() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 638

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 638

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 639

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 639

Strict Standards: Non-static method UltimateTagWarriorActions::replaceTagWithLink() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 643

Lige siden jeg så at det i Flash 8 nu var blevet muligt at lave file upload 100% i Flash, uden nogle fuskede usynlige html-sider, har jeg haft glædet mig til at afprøve det.
Nu er der så dukket et projekt op hvor det er oplagt at bruge, og så er det jo at man begynder at få øje på alle de små problemer og irritationsmomenter.

Egentlig så er det at uploade filer jo en ganske simpel ting:

  1. Vælg fil
  2. Upload fil

Men det scenarie som jeg godt kunne tænke mig i dette tilfælde er:

  1. Vælg billede
  2. Vis bruger billedet, så han kan bekræfte om det er det rigtige
  3. Upload billede
  4. Fortæl om uploaden lykkedes, og hvis ikke, hvad der eventuelt gik galt

Ok, der kom lige et par ekstra steps på, umiddelbart ikke noget vildt, men lad os tage dem en af gangen.

1. Vælg billede
Denne del er super nem, koden er stort set taget rent fra dokumentationen.
Og da koden netop er taget stort set rent derfra, så går jeg ikke i dybden med den, find den i stedet i Flash.


import flash.net.FileReference;

var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
allTypes.push(imageTypes);

var listener:Object = new Object();

//Indsæt selv diverse event listerners her
listener.onSelect = function(file:FileReference):Void {
trace("onSelect: " + file.name);
//Indsæt det der skal ske når brugeren har valgt filen
}

var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse(allTypes); //Åbner gennemse vinduet

Så langt, så godt, brugeren har nu valgt det billede han ønsker at uploade.

2. Vis bruger billedet, så han kan bekræfte om det er det rigtige
Ok, her kommer så det første irritationsmoment:
Når brugeren har valgt billedet, så indeholder file.name værdien kun selve filens navn, og ikke stien til den, og den værdi er ikke gemt i andre værdier heller.
Med andre ord, jeg kan kun vise brugeren navnet på den fil han har valgt, ikke i hvilken mappe den ligger, hvilket jeg personligt synes kan gøre tingene forvirrende.
Selv har jeg ofte flere filer med identiske filnavne, men måske gemt i mapperne “fullsize” og “thumb”, og hvis man kun ser selve filnavnet, ja så bliver jeg i hvert fald selv hurtigt i tvivl om hvorvidt jeg nu fik valgt filen fra den rigtige mappe.
Okay, fair nok, det er en mindre ting, men alligevel.

Her kommer så skridtet, hvor jeg inden upload, gerne vil vise billedet til brugeren så han kan bekræfte om det rent faktisk er det billede han ønsker at uploade.
Det kunne jo være at han rent faktisk var kommet til at vælge et nøgenbillede af konen, fremfor billedet af deres kat, og inden han uploader det til en fremmed server, synes jeg at det er rart at kunne give en visuel indikation af hvad det rent faktisk er han skal til at uploade.

Men, det kan jeg rent faktisk ikke!

På trods af at Flash jo sagtens kan loade billeder dynamisk, i Flash 8 endda også png og gif, så kan jeg ikke vise brugeren billedet.
For, jeg kender jo stadig ikke stien til det, og selv hvis jeg gjorde, så ville jeg ikke umiddelbart kunne få lov til at loade noget fra brugerens lokale maskine på grund af den indbyggede sikkerhed i Flash.
Det med sikkerheden kan man diskutere, for det er jo naturligt nok at Flash ikke bare skal have lov til at loade løs fra brugerens lokale maskine, men jeg synes nu at muligheden burde være der i dette tilfælde. Det giver i hvert fald ikke den store mening, at Flash godt kan sende filen til en fremmed server, men ikke kan vise indholdet af den lokalt.

Nå, men det er rent faktisk så også blevet løsningen (hvis man kan da kan kalde den det) på dette problem, for Flash uploader simpelthen filen til serveren, loader den igen dynamisk, og spørg så brugeren om det var denne fil han gerne ville uploade. Med andre ord, step 3 sker sådan set allerede her, langtfra optimalt, men bedre end ingenting.

3. Upload billede
Dette skridt er også ganske simpelt, når først file.upload er kaldt, foregår det rent server-side som når man modtager en ganske almindelig multipart-form.
Hvis du har brug for at sende værdier med til serveren, så gøre det dog lidt uelegant ved at tilføje dem til selve url’en, som her:

file.upload("http://www.domain.com/upload.aspx?value1=cat&value2=horse"))

Det er som sagt temmelig uelegant, men det virker da.

Når uploaden er gennemført, så modtager man en onComplete event i Flash, og så skulle den jo være i vinkel?
Måske er jeg krævende, men jeg vil gerne have at den uploadede fil får et nyt filnavn, det er nemt nok server-side, men onComplete eventen fortæller bare at min upload lykkedes, det er rent faktisk ikke muligt at sende nogen værdier med tilbage fra serveren.
De værdier kunne være det nye filnavn, stien til der hvor filen er blevet gemt, id’et på den databaserecord der er blevet koblet sammen med billedet m.m., men det kan man ikke, slut færdig.

Workarounden er derfor blevet, at Flash sender en unik streng med til serveren, som så fortæller serveren hvad filen skal hedde m.m., og når Flash så modtager onComplete, så kalder den en bestemt side på serveren med det samme id, og modtager herefter de værdier den nu skal bruge.
Men, igen er det ekstremt uelegant, og så skaber det jo også en ekstra unødig page request på serveren, irriterende.

4. Fortæl om uploaden lykkedes, og hvis ikke, hvad der eventuelt gik galt
Næsten ved vejs ende nu….
Filen er blevet sendt til serveren, og onComplete eventen kommer som sagt hvis alt er gået godt, eller med andre ord, hvis den side som filen sendes til ikke returnerer en http fejl, for eksempel en “404 - Siden kan ikke vises” eller en “500 - Internal server error”.
Det er alt sammen meget godt, men et godt korrekt server-side script genererer jo ikke en 500 fejl, men bør i stedet kommer med en mere brugbar besked, sådan så man ved om det var forbindelsen til databasen der fejlede eller hvad det nu kan være.

Men, som jeg skrev overfor, så kan man jo ikke sende nogen værdier tilbage til Flash, så man kan faktisk ikke umiddelbart give brugere en god og korrekt fejlmeddelse.
Okay, fint nok, brugeren er jo principielt ligeglad, det eneste han konstaterer er jo at det ikke virker, den dybereliggende årsag kan være ham ligegyldig? Nej!
Dels virker det meget mere professionelt at give en konkret og korrekt fejlmeddelelse, særligt de brugere som bruger et værktøj meget vil værdsætte dette, men når brugeren efterfølgende ringer eller skriver til support, så er man allerede meget tættere på at løse problemet, hvis brugeren er i stand til at fortælle hvilken fejl der opstår.
(Og jo, vi logger naturligvis også fejl server-side)

Som (næsten) altid, er der også en uelegant workaround til dette problem….
FileReference objektet kan nemlig modtage de http fejl jeg nævnte længere op, nemlig ved hjælp af eventen onHTTPError. Udover den event sker når der opstår en http fejl, så medsendes fejlkoden også, altså 404, 500 osv:

listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
trace("onHTTPError: " + file.name);
trace("Errorcode: " + httpError);
}


Det har jeg udnyttet til at jeg nu server-side genererer mine egne http fejl, i C# ASP.NET kan det gøres således:

Response.StatusCode = 701;


Med andre ord, så ved jeg nu, at hvis Flash får en http fejl der hedder 701, så betyder det i virkeligheden at databasekaldet er fejlet, og denne information kan jeg så enten fortælle konkret til brugerne, eller bare give dem tallet så de kan give det videre til support.

Så, alt i alt, så virker det hele nu, men jeg må tilstå at jeg er skuffet over at FileReference ikke er lidt bedre gennemtænkt, man kan jo kun håbe på at det bliver rettet i en ny version.

Og så satser jeg for øvrigt på at det projekt hvor der skal bruges er klar til at blive vist om cirka 2-3 uger :-)



Del:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg

27 kommentarer

  1. jan andersen siger: (10. juli 2006 kl. 21:35 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Har du/I mulighed for at vise, hvordan ASP scriptet skrives for at uploade filer ? Dvs script UDEN form og felter….har jeg en del af som jeg skal til at nærlæse for at se, hvordan jeg kan kombinere flash med asp i relation til upload.

    Jeg har fundet en del tutorials, der viser hvordan flash kan uploade multiple filer, progressbar etc men her arbejdes der med php, cfm etc..
    Jeg kan dog selv skrue tingene sammen hvs jeg kan se asp scriptet….?

    hilsen
    jan

  2. Mads Buch Stage siger: (11. juli 2006 kl. 09:16 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Jan,

    Du skal lade være med at tænke på at filen uploades via Flash fremfor en normal form på en side, det behandles nøjagtig ens server-side.

    Har ikke noget ASP kode, da den applikation jeg brugte det il var .Net, men den må du gerne se en stump af:

    HttpFileCollection uploadedFiles = Request.Files;
    if(uploadedFiles.AllKeys.Length > 0) {
    HttpPostedFile F = uploadedFiles[0];
    }

    I min applikation er der tale om et billede, der bliver gemt direkte i en database og derudover bliver det viderebearbejdet lidt inden, så har ikke lige noget kode på hånden med hvordan du gemmer de på disken.

    Men mon ikke du selv kan lure at komme videre herfra? :-)

    Mads

  3. jan andersen siger: (11. juli 2006 kl. 12:25 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Mads,
    Tak for din tilbagemelding.
    Min frustration når pt maximum,da jeg nu stort set uafbrudt har arbejdet med problemstillingen i 2½ døgn. Så al input er meget værdsat.

    Jeg har fundet et eksempel som jeg nu har dissikeretfuldstændigt for at forstå funktionaliteten bag scriptet. Det er også lykkedes. Til dels, da jeg ikke får opdateret.

    Jeg tillader mig at indsætte noget af det script jeg har arbejdet med. Der er en del men måske har du tid og lyst til at se, om du kan finde ud af, hvor jeg går galt ?

    Koden er delt op i to/tre dele.Den ene del indlæser filer, der skal uploades og den anden del håndterer opload til serveren.

    import mx.controls.*;
    import mx.utils.Delegate;
    import flash.net.*;
    /*
    import flash.net.FileReferenceList;
    import flash.net.FileReference;
    */
    import UploadQueue;//Denne del sørger for at uploade - se forneden
    import mx.styles.CSSStyleDeclaration;

    var browseLabel:Label;
    var percentLabel:Label;
    var browseButton:Button;
    var clearListButton:Button;
    var uploadFilesList:List;
    var uploadButton:Button;
    var removeButton:Button;
    var uploadProgressBar:ProgressBar;

    function main ()
    {
    Stage.scaleMode = “noScale”;
    Stage.align = “TL”;
    stop ();

    var new_style:Object = new CSSStyleDeclaration();
    _global.styles.myStyle = new_style;

    fileTypes = [{description:”All files”, extension:”*.*”}];

    /*Hvis jeg ikke udkommenterer stopper alt……interessant
    if (uploadUrl == null)
    {
    showAlert(”Error”,”Upload script URL is empty”);
    return;
    };
    */

    if (maxFileSize == null) {
    //If script comes in here…no invalid files found…see below
    maxFileSize = -1;
    }
    appUrl = _url.substring (0, _url.lastIndexOf (”/”));

    _root.browseButton.enabled = true;
    _root.uploadButton.enabled = false;
    _root.removeButton.enabled = false;
    _root.clearListButton.enabled = false;
    _root.uploadProgressBar.visible = false;
    _root.percentLabel.visible = false;

    _root.uploadFilesList.dataProvider = [];
    //This is what is to be shown in the listbox…name + size
    _root.uploadFilesList.labelFunction = function (data:Object):String {
    return (data.name + ” (” + Math.round (data.size/1024) + “kb)”);
    };

    var buttonDelegate:Function = Delegate.create (this, buttonChanged);
    _root.browseButton.addEventListener (”click”, buttonDelegate);
    _root.clearListButton.addEventListener (”click”, buttonDelegate);
    _root.uploadButton.addEventListener (”click”, buttonDelegate);
    _root.removeButton.addEventListener (”click”, buttonDelegate);

    uploadRefList = new FileReferenceList ();
    uploadRefListener = new Object ();
    uploadRefListener.onSelect = function (refList:FileReferenceList){

    //——————–if some files are too big——————-
    //Fungerer vist ikke helt endnu
    if(maxFileSize != -1){
    var invalidFiles:Number = 0;
    var n:Number = refList.fileList.length;
    var s:String = “Only files smaller than ” + maxFileSize/1024 + “Kb are allowed. “;
    var file:FileReference;

    for (var i:Number = 0; i maxFileSize) {
    refList.fileList.splice (i, 1);
    invalidFiles++;
    };//if (file.size > maxFileSize) {
    };//for (var i:Number = 0; i 0) {
    s += invalidFiles + ” files were ignored.”;
    showAlert (”Error”, s);
    };//if (invalidFiles > 0) {
    }//if(maxFileSize != -1){
    //————————————-

    _root.uploadFilesList.dataProvider = _root.uploadFilesList.dataProvider.concat(refList.fileList);

    _root.clearListButton.enabled = true
    _root.uploadButton.enabled=true
    trace(”antal:”+_root.uploadFilesList.dataProvider.length)//egen kontrol

    }; //uploadRefListener.onSelect = function (refList:FileReferenceList){

    //Kan ikke helt se, hvor jeg får filens sti ind ??
    //——————–
    _root.uploadRefList.addListener (uploadRefListener);

    var uploadListListener:Object = new Object();
    uploadListListener.change = function(eventObject:Object) {
    if(_root.uploadFilesList.dataProvider.length > 0)
    _root.removeButton.enabled = true;
    trace(_root.uploadFilesList.dataProvider.length)
    };
    _root.uploadFilesList.addEventListener(”change”, uploadListListener);
    //——————–

    uploadQueue = new UploadQueue (uploadUrl);

    uploadDelegate = Delegate.create (this, uploadQueueChanged);
    _root.uploadQueue.addEventListener (”start”, uploadDelegate);
    _root.uploadQueue.addEventListener (”progress”, uploadDelegate);
    _root.uploadQueue.addEventListener (”error”, uploadDelegate);
    _root.uploadQueue.addEventListener (”complete”, uploadDelegate);
    };

    //———–Håndterer upload:———import UploadQueue—————-

    public function start (files:Array):Void
    {

    this.files = files;//specifies no. of files to be uploaded
    this.startTime = new Date();
    currentFile = 0;
    dispatchEvent ({type:”start”});

    uploadNext ();
    };

    private function uploadNext ():Void
    {

    if (currentFile

    Hvordan ville det sidste script se ud hvis jeg skulle hard kodeopdatering af énspecific fil ?

    Håber at det her giver mening….ser nok lidt uoverskueligt ud eller ?

    hilsen
    jan

  4. jan andersen siger: (11. juli 2006 kl. 12:28 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    manglede denne deltil sidst…

    private function uploadNext ():Void
    {

    if (currentFile

    Hvordan ville det sidste script se ud hvis jeg skulle hard kodeopdatering af énspecific fil ?

    Håber at det her giver mening….ser nok lidt uoverskueligt ud eller ?

    hilsen
    jan

  5. jan andersen siger: (11. juli 2006 kl. 12:53 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    -kan tilsyneladende ikke indsætte sidste del af koden…….dér hvor det bliver interessant…hhhhmmm hårde odds jeg er oppe imod.

    vhjan

  6. Mads Buch Stage siger: (11. juli 2006 kl. 14:50 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Jan,

    Jeg havde vidst misforstået dig, jeg troede at det var server-delen der drillede?

    Anyway, så lang en kode har jeg altså ikke mulighed for at give input til, desværre, det vil simpelthen tage for lang.

    I stedet har jeg herunder indsat den mest simple form af en upload kode i Flash som jeg kan komme på:

    import flash.net.FileReference;

    var allTypes:Array = new Array();
    var imageTypes:Object = new Object();
    imageTypes.description = “Images (*.jpg, *.jpeg, *.gif, *.png)”;
    imageTypes.extension = “*.jpg; *.jpeg; *.gif; *.png”;
    allTypes.push(imageTypes);

    var listener:Object = new Object();

    //Indsæt selv diverse event listerners her
    listener.onSelect = function(file:FileReference):Void {
    trace(”onSelect: ” + file.name);
    //Indsæt det der skal ske når brugeren har valgt filen
    }

    var fileRef:FileReference = new FileReference();
    fileRef.addListener(listener);
    fileRef.browse(allTypes); //Åbner gennemse vinduet

    //Sender filen til den pågældende url, skal først kaldes når der er blevet valgt en fil, f.eks. i onSelect listeneren
    file.upload(”http://www.domain.com/upload.aspx?value1=cat&value2=horse”))

    Mvh.
    Mads

  7. jan andersen siger: (11. juli 2006 kl. 15:20 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej mads,

    Nej du har ret - det var serverdelen men jeg kom lidt i tvivl om hvorvidt det skyldtes, at flash ikke var på plads. det virker for mig dog som om, at den er.

    Du giver mig også en del af forklaringen i det du her skriver :
    file.upload(”http://www.domain.com/upload.aspx?value1=cat&value2=horse”)) hvor der således sendes variable/ info om filen til serveren så jeg dermed er i stand til at uploade.

    Vidste ikke helt, om man ved blot at skrive file.upload(”http://www.domain.com/upload.aspx samtidigt gav de nødvendige informationer til serveren så der kunne uploades (pga filereference…)
    Men heg kan se, at fil info skal med over.

    Jeg tror at jeg dermed, trods alt, er nær en løsning på denne opgave,, der efterhånden har taget for lang tid…og lidt til.

    Tak for din hurtige tilbagemelding

    vh jan

  8. Mads Buch Stage siger: (11. juli 2006 kl. 15:36 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Jan,

    Alle gængse parametre om filen (filnavn und so weiter) sendes med automatisk.

    Der er intet behov for altid at sende ekstra parametre med som i eksemplet jeg viste.

    De bruges kun hvis man har brug for at sende noget ekstra information som ikke er en del af selve filen. Det kunne for eksempel være hvis en bruger i forbindelse med uploade vælger en bestemt kategori som filen skal tilhøre, så kan man sende kategorinavnet (eller id’et) med samtidig med at man uploader selve filen.

    Men, FileReference kan være super svært at debugge fordi at man ikke kan sende information, eksempelvis en streng med en fejlbeskrivelse, tilbage til Flash.
    Det du kan gøre er at generere dine egne HTTP fejl server-side, og så fange dem i Flash:
    listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
    trace(”onHTTPError: ” + file.name);
    trace(”Errorcode: ” + httpError);
    }

    Så har du i hvert fald en lidt bedre mulighed for at debugge.

    Mads

  9. jan andersen siger: (13. juli 2006 kl. 12:12 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Et hurtigt check.

    Såvel swf som asp filen ligger i samme mappe på domænet.
    Uploaded fil skal gemmes i underliggende mappe UploadedFiles.
    min udbyder understøtter ikke aspx.net. Er det et krav for, at dette kommer til at virke ?
    Har læst at man bør have chmod 777 og ikke 755 til den mappe, som der skal uploades til. Host udbyder taler om, at jeg ikek skal ændre per mappe. Er det et krav, at der ændres til 777 - har problemer med at få ftp til at gøre dette.
    -og til Mads: tak for dit input og den tid du har brugt på det her….
    Jeg kan bare komme i mål og mine frustrationer er i top.

    Hvis der er nogen, der evt vil maile mig et funktionelt eksempel uden php vel at mærke: exe2911jan@yahoo.co.uk
    vh jan

    -brudstykke af actionscript vedr. multiselect:

    fileUploadmulti.onSelect = function(fileRefList:FileReferenceList)
    {
    var list:Array = fileRefList.fileList;
    for (var i:Number = 0; i

    string saveToFolder = “UploadedFiles”;

    private void Page_Load(object sender, System.EventArgs e)
    {
    HttpFileCollection uploadedFiles = Request.Files;
    string Path = Server.MapPath(saveToFolder);
    for(int i = 0 ; i 0)
    {
    string newName = F.FileName.Substring(F.FileName.LastIndexOf(”\\”) + 1);
    F.SaveAs(Path + “/” + newName);
    }
    }
    }

  10. jan andersen siger: (13. juli 2006 kl. 12:14 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    igen problem med at paste kode….

  11. Mads Buch Stage siger: (13. juli 2006 kl. 15:37 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej igen,

    Nej, der er ikke noget kraf til et bestemt programmeringssprog på serversiden.

    Er ikke php-mand, så aner ikke hvad chmod 777 og 755 er, det eneste man kan sige er, at serveren naturligvis skal have skriverettigheder i den mappe hvor du forsøger at gemme filen.

    Mads

  12. Signe Christensen siger: (21. august 2006 kl. 12:15 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej med jer,
    Jeg leder efter et par gode råd om filereference funktionen i Flash og fandt jeres indlæg her.

    Det lyder her som om, at der skal være specielle forhold omkring server for at få uploade funktionen/ filereference til at fungere eller er det ikke rigtig ?

    Pt anvender jeg flash på arbejdet hvor jeg kan sende mine flash programmer på vores intranet-server og så fungerer det. Har dog endnu ikke prøvet med funktion til at uploade filer.

    Nu kunne jeg godt tænke mig at se nærmere på mulighederne for at lave en hjemmeside med flash og her vil jeg bl.a. gerne have mulighed for at uploade billeder ved at bruge filereference i flash.

    Kan I anbefale nogle steder som ikke er for dyre, hvor jeg kan få webhotel og hvor jeg kan bruge denne funktion også ? Ved jo så ikke om det kræver noget specielt hos udbyderen ….

    Jeg håber at høre fra jer.
    På forhånd tak
    Signe

  13. Mads Buch Stage siger: (21. august 2006 kl. 13:29 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Signe,

    Der skal for så vidt ikke være “specielle forhold omkring server” for at man kan uploade billeder via filereference.

    Det der ofte er problemet er, at filereference i sig selv er temmelig drilsk, og super dårlig til at give brugbare fejlmeddelelser når der er noget der går galt.

    Angående det med at finde et egnet webhotel, så er det eneste krav, at webhotellet understøtter et server-side programmeringssprog, da upload af filer ikke håndteres 100% via Flash.
    Alle webhoteller der for eksempel understøtter php kan derfor bruges.

    Mvh.
    Mads

  14. Jonas Tesch siger: (14. oktober 2006 kl. 16:46 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Mads

    Tak for din fine gennemgang af uploadmulighederne i flash, meget oplysende!

    Jeg kan ikke lade være med at tænke på om der er nogen muligheder i flash
    for at drag og droppe en fil eller et billede direkte i swf’en i stedet for at skulle igennem en fil dialog.. Jeg har selv prøvet at finde ud af det uden held, og man kan sikkert ikke, men det virker som om du er god til at finde alle smuthullerne i flash, så jeg bliver nødt til lige at spørge:-)

    MvH

  15. Mads Buch Stage siger: (16. oktober 2006 kl. 10:13 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Jonas,

    Tak for de fine ord :-)

    Umiddelbart kender jeg ikke p.t. til nogen muligheder for at lave drag-n-drop fra for eksempel stifinder til Flash.

    Skal ikke helt kunne udelukke at det findes, men ville næsten tro at jeg var stødt på det et sted, da det helt sikkert er noget som mange ville kunne bruge.

    Mads

  16. Lasse siger: (30. marts 2007 kl. 13:00 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Mads…

    Jeg er ikk ligeså hård til php og alt det program kode.
    kan kun finde ud af Html da det er rimelige nem.
    Men på min hjemmeside lægnedes der efter en løsning til at Upload billeder til en ftp server. igennem en programkode det skal være hurtig og nem da jeg ikk er så hård til sådan noget somsagt

  17. Mads Buch Stage siger: (30. marts 2007 kl. 13:48 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Lasse,

    I såfald vil jeg anbefale dig at holde dig være fra Flash og FileReference, det tror jeg kun vil gøre det hele unødigt komplekst.

    Prøv måske i stedet med dette simple php-script:
    http://www.reginscorner.dk/index.php/Scripts/Upload_med_PHP

    Mads

  18. Martin Dalgaard siger: (22. december 2007 kl. 18:35 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Mads.

    God Artikle, og jeg sidder i en sitiuaton nu hvor jeg kan actionscript og asp. Ikke .net bare asp.

    Der er kun 1 ting som irretere mig meget med det her, hvad hedder strengen som bliver sendt i post form. Altså Request.form(hvad). Har ikke kunne finde noget om det i flash eller adobes dokumentation. Eller på google

  19. Mads Buch Stage siger: (23. december 2007 kl. 10:55 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Martin,

    Hvis du mener, hvordan du får fat i selve “filen” med din asp-kode, så gøres det præcis som hvis den var sendt fra en almindelig html-form.

    Her er et eksempel på en asp-upload:
    http://www.asp101.com/articles/jacob/scriptupload.asp

    Har ikke testet den, men mit bud er at den kan overføres stort set direkte til at modtager din filer fra Flash.

    God jul!

    /Mads

  20. Mads ny siger: (12. april 2008 kl. 14:56 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Jeg har store problemer med fil upload gennem flash og har testet alle trixx i google håndbogen, det viser sig, at de billige host virksomheder som cliche og one, har lukket for en del funktionaliteter som eks:

    brugen af .htaccess kommandoer
    SecFilterEngine Off
    SecFilterScanPOST Off

    i mit tilfælde virker php scriptet uden problemer, men handshake mellem mit/mine flash test programmer og php scriptet bliver ved med at fejle på 400,403,404 og med .htaccess 500. det skyldes den måde cliche og one har sat deres server systemer op på, og jeg har ikke få nogen forklaring fra dem eller få at vide hvordan dette kan fikses.

    Hvis nogen får noget ud af dette her. så sig endelig til.
    http://one-docs.com/php5/

    ellers vil jeg sige, gå uden om cliche og one hvis i skal have filupload gennem flash.
    såfremt jeg finder en løsning notere jeg denne.

  21. Mads Buch Stage siger: (14. april 2008 kl. 09:52 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Angående 500-fejlen, har du så tjekket, at den php-fil du kalder rent faktisk har skriverettigheder i det directory som du beder den om at gemme i?

    9 ud af 10 gang hvor jeg selv har haft problemer, så har det altid være noget med det.
    Hvis jeg husker rigtigt, så skal den have 666 rettigheder.

  22. Godowsky siger: (17. august 2008 kl. 15:32 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Er der nogen der kender en hosting løsning hvor upload fra flash via filereference bare virker, - både på mac og pc?

  23. Mads Buch Stage siger: (18. august 2008 kl. 10:31 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    @Godowsky: Har ikke lige et navn, hvor jeg ved at det bare virker, men når vi snakker rettigheder på serveren, så er der ikke forskel på at uploade filer via filereference og via en almindelig html-form.

  24. godowsky siger: (24. august 2008 kl. 21:30 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Mads: Ser ud til at onComplete virker på den fucki…. lotus domino server som skidtet skal køre på, - MEN, - nu kan jeg ikke længere finde mine filer, - de er der ikke selvom at min procenttæller tæller fint op til 100 og onComplete bliver kaldt, - har du nogen ide om hvad der kan være galt????

    vh

    Godowsky

  25. Mads Buch Stage siger: (25. august 2008 kl. 09:57 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Godowsky - hvis den rent faktisk når op på 100% og at serveren ikke generer nogen fejl (tjek eventuelt serverloggen), så burde filen ligge der et sted?

    Men ja, har ikke nogen erfaring med en Lotus Domino server, så desværre ingen oplagte ideer til hvad det ellers kan være.

    Eventuelt kan du bruge metoden med at generere http-statuskoder til at trace hvor langt den når i din server-side kode?

    /Mads

  26. Phillip N. siger: (2. september 2008 kl. 22:00 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Jeg har også det samme problem som nogle af jer herinde. Jeg har købt et webhotel hos web10.dk og one.com og ingen af disse server virker på File upload i flash….sjovt nok så virker det på one.com på en pc, men ikke på en mac. Jeg får en http error 404, hver gang jeg forsøger at upload en fil. Jeg har endnu ikke helt forstået, hvorfor det ikke virker. Alle mine mapper har rettigheder 777, så det er ikke der problemet ligger.

    Hvis I kender et webhotel, hvor upload funktionen både virker på pc og mac, må I endelig sige til.

  27. Mads Buch Stage siger: (2. september 2008 kl. 22:20 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Sagen er den, at file-upload i Flash rent server-mæssigt virker på præcis samme måde som en almindelig html-file-upload, så prøv eventuelt at lave en almindelig html-form og upload filen via den.

    Hvis det virker, men jeres Flash-upload ikke gør, så er det jeres Flash-kode og ikke webhotellet der er noget galt med.

    Men, bortset fra det, så kan file reference drille en helt del, da den er temmelig besværlig at debugge.

    Prøv eventuelt at poste al jeres kode på www.flashforum.dk - der er det lidt nemmere at give konkret og specifik hjælp.

Skriv en kommentar