Hej NG,
Jeg har lavet et script til upload af video-filer til mit eget video-arkiv
(med konvertering og integration med database med videre bagved), og det
virker ganske fint (perl CGI).
Nu ville jeg så gerne skiftede min fake upload-bar ud med en der rent
faktisk viser hvor langt min upload er kommet.
I den forbindelse har jeg læst og læst i man-siden til perl CGI samt
googlet en del, og fundet frem til en løsning der anvender en kombination
af CGI::Ajax og \&hook-kaldet under oprettelse af ens CGI-objekt.
Et fungerende eksempel her:
http://www.perlmonks.org/?node_id=588964
I korte træk laver ovenstående script først en upload-form med et unikt ID
(jeg har i mit eget script en sub der kreerer et unikt ID i min database),
som anvendes af AJAX-delen til senere at sende requests til
server-scriptet med henblik på at få status på upload.
Jeg er i midlertid rendt ind i et 'hønen og ægget'-problem i forbindelse
med denne løsning;
Det ovenstående script gemmer filerne på serveren med et filnavn der
består af et random ID+originalt filnavn (den fulde sti til filen på pc'en
det blev uploadet fra, f.eks. C:\WINNT\profiles\<username>\hest.txt), men
jeg vil gerne have mulighed for at gemme filen direkte under et filnavn
jeg selv bestemmer, samtidig med, at AJAX-delen skal have adgang til at
efterspørge status på fil-uploaden medens denne foregår.
At gemme direkte med 'mit eget' filnavn kan jeg fint styre gennem det
genererede ID, men hvordan jeg sender dette ID videre til hook-sub'en kan
jeg ikke lige greje.
Jvf. dokumentationen til CGI, så kan man sende $data videre til ens 'hook'
(f.eks. et databaseID), MEN man må ikke foretage et eneste CGI-kald før
'hook' er erklæret (gennem f.eks. $q = CGI->new(\&hook[[, $data[,
$use_tempfile]]), hvilket så vil sige, at jeg ikke ved hvordan jeg sender
mit generede ID videre til hook'et.. Gav dette nogen mening?
Hvis det var muligt at foretage CGI-kald (param('id') før erklæringen af
$q ville det være et genialt værktøj til at lave en uploadstatus med
filnavne der er detainted.
Jeg har i øvrigt prøve at pass'e $data som reference, og så tildele id til
$data efterfølgende, men der kommer ikke noget igennem til hook-sub'en.
Mvh
/rené