Avatar billede Slettet bruger
13. april 2008 - 20:17 Der er 4 kommentarer

Multiupload af billeder. Den virker kun i flash, ikke på serveren

Hej eksperter.

Jeg har et lidt vanskeligt definérbart problem, jeg håber I kan hjælpe med. Det drejer sig om en funktionalitet til upload af mange billeder på én gang på http://www.innova2r.net.

Jeg har valgt at købe multiupload-koden - og herefter viderebearbejde denne. Jeg bruger den professionelt udviklede kode, den tilhørende PHP-kode samt AMFPHP.
PROBLEMET? Det virker lokalt, men ikke på serveren!

Multiuploader-filen kan ses her: http://81.7.144.103/versionfinale/multiupload.swf
(Se venligst bort fra at knappen ligger helt nede i bunden - det gør den ikke, når scenestørrelsen er korrekt).

Trin 1: Brugeren har valg billeder og klikker på upload-knappen

Trin 2:
Den kan ses her - http://www.innova2r.net/test/multiupload.txt - og køres ved afvikling af .upload kommandoen. Billederne uploades helt korrekt.
De får dog andre filnavne i kraft af fortløbende numre, hentet fra SQL-databasen for at undgå at filerne overskriver hinanden + at jeg så altid har styr på, hvem af brugerne der uploadede hvilke billeder.

Trin 3: Jeg har ikke haft held med at få deres onUploadComplete-listener (der køres efter hvert enkelt billede er uploadet) til at modtage ID'en på billedet. Det er vigtigt, for når et billede er uploadet, skal det herefter vises. What to do....? Jo, jeg tilføjer istedet de enkelte id'ere til en SESSION-variabel. Når alle billeder er indlæst, bliver arrayet bare læst og returneret vha. denne kode:

var pc:PendingCall = _service.hentbilleder();
pc.responder = new RelayResponder(_root, "handleResult", "handleError");
function handleResult(re:ResultEvent) {
    _root.idnavne = re.result; // F.eks. 1831,1832,1833
    trace("Sessionid-array: "+idnavne); // Denne virker fint inde fra Flash
    for (var i=0; i<re.result.length; i++) {
        titel.push(""); // Slet titel- og søgeordsfelterne
        soegeord.push("");
    }
    vismig_mc.loader.contentPath = "http://81.7.144.103/*******"+_root.idnavne[0]+".jpg";
}

Hvis du har NetConnection/AMFPHP debuggeren installeret i Flash, så prøv at åbne vinduet under processen og se hvad der sker...


Yderligere info:

I første frame står bl.a.
System.security.allowDomain("http://81.7.144.103");
System.security.allowDomain("http://www.innova2r.net");
(har også prøvet med "*")

I tilfælde af at det er et rettighedsproblem, har jeg også en crossdomain XML-fætter liggende i roden.

Jeg har tilføjet et simpelt debug-felt i .swf filen. Den burde vise første ID af de billeder der er blevet uploadet og fungerer fint inde fra Flash.

Jeg har prøvet i dagevis at få det til at virke. Kan du hjælpe? Og har du brug for supplerende oplysninger/kode, så sig endelig til.
Avatar billede kimg Nybegynder
14. april 2008 - 12:48 #1
Måske... Gem denne med filnavn crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

Og upload den til roden.

Kim
Avatar billede Slettet bruger
14. april 2008 - 13:01 #2
Hej Kim.

Som nævnt har jeg allerede en crossdomain XML-fil liggende - og den er (beklageligvis) identisk med dit forslag.

Mvh. Anders
Avatar billede kimg Nybegynder
14. april 2008 - 13:37 #3
Ja det læste jeg, men med fejlmeldingen troede jeg ikke du havde brugt * ;-)

Kim
Avatar billede Slettet bruger
14. april 2008 - 16:23 #4
Hvis du har mod på det - og mener, der er chance for at du kommer i mål - kan du få sourcefilerne. Som nævnt virker det lokalt, men ikke på serveren.
Får du det til at virke, står der en plovmand på højkant (Jeg skal bare ha' en kvittering på konsulentbistand) + naturligvis de 200 point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester