Gå til innhold

Anbefalte innlegg

Jeg forsøker å få til et system hvor jeg kan laste ned filer via en hvilken som helst browser.

Klarer ikke helt å forstå hvordan httplistener skal respondere på henvendelsen.

Det funker ikke å bare skrive filedataen til output stream på respons objektet.

 

Noen innspill?

Lenke til kommentar
Videoannonse
Annonse

Sikkert ikke. :)

Dette ,http://support.microsoft.com/kb/260519, er vel bare gyldig for ie?

Men utover det vet jeg ikke noe mer om hvordan headerene skal settes opp.

Har forsøkt å se på dokumentasjonen for HTTP, men fant ikke (les: vet kanskje ikke helt hva jeg ser etter) noe info jeg kunne bruke.

 

Hvilke headere trengs?

Lenke til kommentar
Har forsøkt å se på dokumentasjonen for HTTP, men fant ikke (les: vet kanskje ikke helt hva jeg ser etter) noe info jeg kunne bruke.
Hvis du bruker Opera så kan du gå til "Verktøy->Avansert->Utviklerverktøy". Velg "Nettverk" i viduet som kommer opp, der kan du se hvordan respons-header ser ut når du laster ned en fil fra en eller annen webside. Dette bør gi deg en pekepinn på hvordan du skal løse det.

 

Skulle gjerne hjulpet deg mer, men jeg kjenner ikke detaljer rundt http veldig godt.

Lenke til kommentar

Etter noe testing ser det ut som dette er alt som skal til:

 

HttpListener http = (HttpListener)iar.AsyncState;
HttpListenerContext context = http.EndGetContext(iar);

// Denne er ikke nødvendig, men hvis filename er angitt dukker det automatisk opp i 
// "Save as.." dialogen.
context.Response.AddHeader("Content-Disposition", "attachment; filename=foobar.exe");

context.Response.OutputStream.Write(File.ReadAllBytes("C:\\foobar.exe"), 0,(int)fi.Length);
context.Response.Close(); // Sender responsen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...