Avatar billede stephanryer Nybegynder
16. februar 2006 - 16:23 Der er 13 kommentarer og
1 løsning

Upload asynkront vha. CGI kode

I mit java script laver jeg nogen kald til en server side CGI-fil og afventer svar hvorefter jeg handler ud fra det svar jeg modtager. Dette gør jeg således:

function sndReq(string) {
    http.open('get', string);
    http.onreadystatechange = handleResponse;
    http.send(null)
}
function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        if(response == "true"){
            alert("Serveren returnerede strengen 'true'.");
        }else{
            alert("Serveren sendte ikke true tilbage. Dr skete en fejl.");
        }
    }
}

Mit problem er nu at jeg gerne vil kunne igangsætte upload af en fil og så modtage svar om der gik godt eller skidt. Jeg benytter asp.net 2.0 som server side kode.

Jeg vil helt undgå nogen postbacks, da jeg i dette tilfælde vil skulle gemme javascript indstillingerne og gendanne disse.

På forhånd tak.
Avatar billede stephanryer Nybegynder
16. februar 2006 - 16:25 #1
metoden 'sndReq' kunne fx kaldes således:

sndReq("doSomething.aspx?var1=value1");
Avatar billede stephanryer Nybegynder
16. februar 2006 - 16:27 #2
hov, har glemt at forklare hvad http er for et objekt:

var http = null;
if(navigator.appName == "Microsoft Internet Explorer")
        var http = new ActiveXObject("Microsoft.XMLHTTP");
    else
        var http = new XMLHttpRequest();
Avatar billede olebole Juniormester
16. februar 2006 - 20:18 #3
<ole>

Det kan ikke lade sig gøre, da det ville kræve, at JS kan læse en binær fil på brugerens HD ... og det kan ikke lade sig gøre via en browser  :)

/mvh
</bole>
Avatar billede stephanryer Nybegynder
16. februar 2006 - 20:29 #4
Jamen man må kunne lave noget ved at bruge

<form>
...
<input type="file" ... />
...
</form>

Og så sørge for at submit ikke skifter side men blot sender POST eller GET data til en anden side og afventer svar.

Kan dette ikke lade sig gøre?
Avatar billede olebole Juniormester
16. februar 2006 - 20:37 #5
nope, du kan ikke uploade filer via XMLHttp og en browser ... taht's it 'n' that's that  :)

Du kan _kun_ uploade filer via en form fra en browser - med mindre dine brugere downloader og installerer en ActiveX-kontrol ... men det får du nok ikke nogen til
Avatar billede stephanryer Nybegynder
16. februar 2006 - 22:43 #6
hmmmm.... FANDENS!!

dvs jeg bliver nød til at have min aspx-fil i en IFrame eller simpelthen loade hele siden igen efter load af siden?
Avatar billede olebole Juniormester
16. februar 2006 - 22:52 #7
Det har jeg ingen anelse om, da jeg jo ikke kender opbygningen af din applikation  :)

Vær i øvrigt lykkelig for, det ikke kan lade sig gøre. Ellers kunne jeg jo uploade hele din HD - med alle følsomme oplysninger - når du kommer ind på mit site ... og helt uden du aner det første om det. Er det synderligt fedt?  ;o)
Avatar billede stephanryer Nybegynder
17. februar 2006 - 02:07 #8
hehe nej, men er det ikke muligt at lave en POST uden at skifte side? For så kunne man jo ihvertfald få uploadet en fil uden at der skiftes side.
Avatar billede stephanryer Nybegynder
17. februar 2006 - 14:39 #9
Well jeg vil bruge en asp.net control så

FileUpload.

Problemet er at jeg gerne vil have en variabel sendt med som varierer efter hvad man har gjort i javascriptet. Når man navigerer rundt i javascriptet ændrer den sti sig nemlig, som man skal gemme filen i.

Kan man have en hidden som kan ændres i javascriptet men som samtidigt sendes med?
Avatar billede olebole Juniormester
17. februar 2006 - 14:49 #10
17/02-2006 02:07:19 --> Du kan poste formen mod en skjult iframe ... bare brug en target i form-elementet, der modsvarer name-attributten på iframe'en.

17/02-2006 14:39:39 --> Jeg kender ikke den pågældende .net-kontrol, så jeg ved ikke, hvad den implementerer - eller hvordan den kan behandles
Avatar billede stephanryer Nybegynder
17. februar 2006 - 14:50 #11
undskyld mange gange :p

Læg et svar.
Avatar billede olebole Juniormester
17. februar 2006 - 15:08 #12
- undskyld, hvad?  :)
Avatar billede stephanryer Nybegynder
17. februar 2006 - 15:12 #13
Jeg kan ikke bruge en skjult IFrame for jeg skal kunne redigere noget info som skal sendes med.
Avatar billede olebole Juniormester
17. februar 2006 - 15:27 #14
- ehhhhhhh .... jamen, så lad være med at skjule den  =)
Så er det jo kun iframen, der opdateres ... ikke resten af siden
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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